From e6ebff7878b87e5c1a145db930b4036e500a1110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Fri, 6 Jan 2023 09:25:54 +0100 Subject: [PATCH] api: return also recurring events in agendas events endpoint (#73062) --- chrono/api/views.py | 2 +- tests/api/test_event.py | 35 ++++++++++++++++++++--------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/chrono/api/views.py b/chrono/api/views.py index 4c15a24f..9cf3cd82 100644 --- a/chrono/api/views.py +++ b/chrono/api/views.py @@ -2164,7 +2164,7 @@ class MultipleAgendasEvents(APIView): events += get_objects_from_slugs( event_slugs, qs=agendas_by_slug[agenda_slug] - .event_set.filter(cancelled=False, recurrence_days__isnull=True) + .event_set.filter(cancelled=False) .prefetch_related(Prefetch('primary_event', queryset=Event.objects.all().order_by())) .order_by(), prefix='%s@' % agenda_slug, diff --git a/tests/api/test_event.py b/tests/api/test_event.py index 34a70d34..5d9a476c 100644 --- a/tests/api/test_event.py +++ b/tests/api/test_event.py @@ -892,21 +892,6 @@ def test_events(app, user): assert resp.json['err'] == 1 assert resp.json['err_desc'] == 'invalid slugs: foo@cancelled' - # primary event in list - resp = app.get( - '/api/agendas/events/', - params={ - 'slots': [ - 'bar@event-slug', - 'foo@recurring-event-slug--2022-07-01-1600', - 'foo@recurring-event-slug', - ] - }, - status=400, - ) - assert resp.json['err'] == 1 - assert resp.json['err_desc'] == 'invalid slugs: foo@recurring-event-slug' - # bad event format resp = app.get( '/api/agendas/events/', @@ -930,6 +915,7 @@ def test_events(app, user): 'slots': [ 'bar@event-slug', 'foo@recurring-event-slug--2022-07-01-1600', + 'foo@recurring-event-slug', ] }, ) @@ -968,6 +954,23 @@ def test_events(app, user): 'url': None, 'waiting_list_places': 0, }, + { + 'agenda': 'foo', + 'description': None, + 'duration': None, + 'label': 'Recurring Event Label', + 'places': 10, + 'pricing': None, + 'primary_event': None, + 'publication_datetime': None, + 'recurrence_days': [4], + 'recurrence_end_date': '2022-07-09', + 'recurrence_week_interval': 1, + 'slug': 'recurring-event-slug', + 'start_datetime': '2022-07-01T16:00:00+02:00', + 'url': None, + 'waiting_list_places': 0, + }, ] # result sorting ? with CaptureQueriesContext(connection) as ctx: @@ -978,6 +981,7 @@ def test_events(app, user): 'foo@recurring-event-slug--2022-07-01-1600', 'bar@event-slug', 'foo@recurring-event-slug--2022-07-08-1600', + 'foo@recurring-event-slug', ] }, ) @@ -988,6 +992,7 @@ def test_events(app, user): ('foo', 'recurring-event-slug--2022-07-01-1600'), ('bar', 'event-slug'), ('foo', 'recurring-event-slug--2022-07-08-1600'), + ('foo', 'recurring-event-slug'), ]