From 9c51acb5d52ad4eda8225631115a07df8632a8c3 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Wed, 30 Jun 2021 17:52:05 +0200 Subject: [PATCH] agendas: display start datetime of recurring event (#54655) --- chrono/agendas/models.py | 7 +++++++ tests/test_agendas.py | 16 ++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/chrono/agendas/models.py b/chrono/agendas/models.py index f4286bc..26eba8f 100644 --- a/chrono/agendas/models.py +++ b/chrono/agendas/models.py @@ -1677,6 +1677,13 @@ class Event(models.Model): 'every_x_weeks': every_x_weeks, } + if self.start_datetime > now(): + start_date = date_format(self.start_datetime, 'DATE_FORMAT') + recurrence_display = _('%(Every_x_days)s, from %(date)s') % { + 'Every_x_days': recurrence_display, + 'date': start_date, + } + if self.recurrence_end_date: end_date = date_format(self.recurrence_end_date, 'DATE_FORMAT') recurrence_display = _('%(Every_x_days)s, until %(date)s') % { diff --git a/tests/test_agendas.py b/tests/test_agendas.py index 75431c2..00e5db1 100644 --- a/tests/test_agendas.py +++ b/tests/test_agendas.py @@ -2187,9 +2187,15 @@ def test_recurring_events_display(freezer): freezer.move_to('2021-01-06 12:30') agenda = Agenda.objects.create(label='Agenda', kind='events') event = Event.objects.create( - agenda=agenda, start_datetime=now(), recurrence_days=list(range(7)), places=5 + agenda=agenda, + start_datetime=now() + datetime.timedelta(days=1), + recurrence_days=list(range(7)), + places=5, ) + assert event.get_recurrence_display() == 'Daily at 1:30 p.m., from Jan. 7, 2021' + + freezer.move_to('2021-01-07 12:30') assert event.get_recurrence_display() == 'Daily at 1:30 p.m.' event.recurrence_days = [1, 2, 3, 4] @@ -2214,5 +2220,11 @@ def test_recurring_events_display(freezer): event.save() assert ( event.get_recurrence_display() - == 'On Monday at 1:30 p.m., once every three weeks, until Jan. 13, 2021' + == 'On Monday at 1:30 p.m., once every three weeks, until Jan. 14, 2021' + ) + + freezer.move_to('2021-01-06 12:30') + assert ( + event.get_recurrence_display() + == 'On Monday at 1:30 p.m., once every three weeks, from Jan. 7, 2021, until Jan. 14, 2021' ) -- 2.20.1