feat(events): formal end date for recurring series

Add EventSeries.until: an explicit series end that caps occurrence
generation (whichever comes first — it, the generation horizon, or the
rule's own COUNT/UNTIL). Blank means open-ended. Surface it in the admin.
100% coverage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-12 19:22:48 +02:00
parent c535e5dc8c
commit 2653dd6d08
5 changed files with 45 additions and 3 deletions

View File

@@ -0,0 +1,18 @@
# Generated by Django 6.0.6 on 2026-07-12 17:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('events', '0006_event_series_offsets'),
]
operations = [
migrations.AddField(
model_name='eventseries',
name='until',
field=models.DateTimeField(blank=True, help_text="Series end: no occurrences are generated after this. Leave blank for open-ended (bounded by the rule's own COUNT/UNTIL, if any).", null=True, verbose_name='until'),
),
]