From 662785c072698f6552b24b3de517b47f420a7ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Tue, 10 Jan 2023 10:03:04 +0100 Subject: [PATCH] manager: fix simple desk management & tab redirection (#68217) --- chrono/manager/views.py | 13 ++++++++++--- tests/manager/test_meetings_agenda_options.py | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/chrono/manager/views.py b/chrono/manager/views.py index 55dd2102..271be14c 100644 --- a/chrono/manager/views.py +++ b/chrono/manager/views.py @@ -3046,7 +3046,14 @@ class AgendaDateTimePeriodListView(ManagedDeskMixin, ListView): agenda_date_time_period_list = AgendaDateTimePeriodListView.as_view() -class AgendaAddDesk(ManagedAgendaMixin, CreateView): +class AgendaDeskMixin: + def get_success_url(self): + if not self.object.agenda.desk_simple_management: + self.tab_anchor = 'time-periods' + return super().get_success_url() + + +class AgendaAddDesk(AgendaDeskMixin, ManagedAgendaMixin, CreateView): template_name = 'chrono/manager_desk_form.html' model = Desk form_class = NewDeskForm @@ -3060,7 +3067,7 @@ class AgendaAddDesk(ManagedAgendaMixin, CreateView): agenda_add_desk = AgendaAddDesk.as_view() -class DeskEditView(ManagedAgendaSubobjectMixin, UpdateView): +class DeskEditView(AgendaDeskMixin, ManagedAgendaSubobjectMixin, UpdateView): template_name = 'chrono/manager_desk_form.html' model = Desk form_class = DeskForm @@ -3073,7 +3080,7 @@ class DeskEditView(ManagedAgendaSubobjectMixin, UpdateView): desk_edit = DeskEditView.as_view() -class DeskDeleteView(ManagedAgendaSubobjectMixin, DeleteView): +class DeskDeleteView(AgendaDeskMixin, ManagedAgendaSubobjectMixin, DeleteView): template_name = 'chrono/manager_confirm_delete.html' model = Desk tab_anchor = 'desks' diff --git a/tests/manager/test_meetings_agenda_options.py b/tests/manager/test_meetings_agenda_options.py index bce94146..50dfb6af 100644 --- a/tests/manager/test_meetings_agenda_options.py +++ b/tests/manager/test_meetings_agenda_options.py @@ -380,7 +380,7 @@ def test_meetings_agenda_delete_desk(app, admin_user): resp = resp.click('Desk A') resp = resp.click('Delete') resp = resp.form.submit() - assert resp.location.endswith('/manage/agendas/%s/settings#open:desks' % agenda.pk) + assert resp.location.endswith('/manage/agendas/%s/settings#open:time-periods' % agenda.pk) assert Desk.objects.count() == 1 # only one desk