feat(events): series-level gathering and deadline offsets

EventSeries gains gathering_offset and deadline_offset (durations before
the start). Each generated occurrence derives its gathering/deadline from
them (and clears them when unset); propagate_series pushes offset changes
to non-detached future occurrences. Surface them in the admin. 100%
coverage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-12 18:04:14 +02:00
parent ca34d26a8e
commit c535e5dc8c
5 changed files with 59 additions and 3 deletions

View File

@@ -0,0 +1,23 @@
# Generated by Django 6.0.6 on 2026-07-12 16:03
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('events', '0005_event_series'),
]
operations = [
migrations.AddField(
model_name='eventseries',
name='deadline_offset',
field=models.DurationField(blank=True, help_text="How long before the start each occurrence's sign-up deadline is.", null=True, verbose_name='deadline offset'),
),
migrations.AddField(
model_name='eventseries',
name='gathering_offset',
field=models.DurationField(blank=True, help_text="How long before the start each occurrence's gathering time is.", null=True, verbose_name='gathering offset'),
),
]