From c29b3fadb423605a8c57eb5b135fd07b94b25924 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Tue, 25 Jan 2022 12:07:59 +0100 Subject: [PATCH] api: add exception desk on event agenda creation (#61021) --- chrono/api/views.py | 3 +++ tests/api/test_all.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/chrono/api/views.py b/chrono/api/views.py index 11ec76c1..b5dfc261 100644 --- a/chrono/api/views.py +++ b/chrono/api/views.py @@ -756,6 +756,9 @@ class Agendas(APIView): if not serializer.is_valid(): raise APIErrorBadRequest(N_('invalid payload'), errors=serializer.errors) agenda = serializer.save() + if agenda.kind == 'events': + desk = Desk.objects.create(agenda=agenda, slug='_exceptions_holder') + desk.import_timeperiod_exceptions_from_settings() return Response({'err': 0, 'data': [get_agenda_detail(request, agenda)]}) diff --git a/tests/api/test_all.py b/tests/api/test_all.py index d493ca4e..54b19439 100644 --- a/tests/api/test_all.py +++ b/tests/api/test_all.py @@ -740,6 +740,7 @@ def test_add_agenda(app, user, settings): assert agenda.edit_role == edit_group assert agenda.view_role == view_group assert agenda.category == category_a + assert not Desk.objects.filter(agenda=agenda, slug='_exceptions_holder').exists() # add an events agenda params = { @@ -762,6 +763,10 @@ def test_add_agenda(app, user, settings): assert agenda.view_role == view_group assert agenda.min_booking_datetime.date() == datetime.date(2021, 7, 12) assert agenda.category == category_a + assert Desk.objects.filter(agenda=agenda, slug='_exceptions_holder').exists() + + resp = app.get('/api/agendas/datetimes/?agendas=%s' % agenda.slug) + assert 'data' in resp.json def test_api_create_subscription(app, user): -- 2.30.2