diff --git a/chrono/manager/templates/chrono/manager_meetings_agenda_settings.html b/chrono/manager/templates/chrono/manager_meetings_agenda_settings.html index c06389d1..113ea5bb 100644 --- a/chrono/manager/templates/chrono/manager_meetings_agenda_settings.html +++ b/chrono/manager/templates/chrono/manager_meetings_agenda_settings.html @@ -12,12 +12,6 @@ {% endif %} {% endblock %} -{% block agenda-extra-management-actions %} - {% if has_resources %}{% trans 'Add resource' %}{% endif %} - {% trans 'New Meeting Type' %} - {% trans 'New Desk' %} -{% endblock %} - {% block agenda-extra-menu-actions %} {% if object.desk_simple_management %}
  • {% trans 'Switch to invididual desk management' %}
  • @@ -66,11 +60,14 @@ {% else %}
    {% blocktrans trimmed %} - This agenda doesn't have any meeting type yet. Click on the "New Meeting Type" button in - the top right of the page to add a first one. + This agenda doesn't have any meeting type yet. Click on the "New Meeting Type" button to add a first one. {% endblocktrans %}
    {% endif %} +
    + {% trans 'New Meeting Type' %} +
    + {% if object.desk_simple_management %} @@ -79,10 +76,13 @@ {% for desk in object.prefetched_desks %}
  • {{ desk.label }} - {% trans "remove" %} + {% if object.prefetched_desks|length > 1 %}{% trans "remove" %}{% endif %}
  • {% endfor %} +
    + {% trans 'New Desk' %} +
    {% endif %} @@ -139,11 +139,15 @@ {% else %}
    {% blocktrans trimmed %} - This agenda doesn't have any desk yet. Click on the "New Desk" button in - the top right of the page to add a first one. + This agenda doesn't have any desk yet. Click on the "New Desk" button to add a first one. {% endblocktrans %}
    {% endif %} + {% if not object.desk_simple_management %} +
    + {% trans 'New Desk' %} +
    + {% endif %} {% if has_resources %} @@ -164,12 +168,14 @@ {% else %}
    {% blocktrans trimmed %} - This agenda doesn't have any resource yet. Click on the "Add resource" button in - the top right of the page to add a first one. + This agenda doesn't have any resource yet. Click on the "Add resource" button to add a first one. {% endblocktrans %}
    {% endif %} {% endwith %} +
    + {% trans 'Add resource' %} +
    {% endif %} 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