Déplacer les buttons "new" dans les onglets correspondants (#68217) #29

Merged
lguerin merged 3 commits from wip/68217-agenda-settings-buttons into main 2023-01-13 14:13:50 +01:00
3 changed files with 30 additions and 17 deletions

View File

@ -12,12 +12,6 @@
{% endif %}
{% endblock %}
{% block agenda-extra-management-actions %}
{% if has_resources %}<a rel="popup" href="{% url 'chrono-manager-agenda-add-resource' pk=object.pk %}">{% trans 'Add resource' %}</a>{% endif %}
<a rel="popup" href="{% url 'chrono-manager-agenda-add-meeting-type' pk=object.id %}">{% trans 'New Meeting Type' %}</a>
<a rel="popup" href="{% url 'chrono-manager-agenda-add-desk' pk=object.id %}">{% trans 'New Desk' %}</a>
{% endblock %}
{% block agenda-extra-menu-actions %}
{% if object.desk_simple_management %}
<li><a href="{% url 'chrono-manager-agenda-desk-management-toggle-view' pk=object.pk %}">{% trans 'Switch to invididual desk management' %}</a></li>
@ -66,11 +60,14 @@
{% else %}
<div class="big-msg-info">
{% 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 %}
</div>
{% endif %}
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-add-meeting-type' pk=object.id %}">{% trans 'New Meeting Type' %}</a>
</div>
</div>
{% if object.desk_simple_management %}
@ -79,10 +76,13 @@
{% for desk in object.prefetched_desks %}
<li>
<a rel="popup" href="{% url 'chrono-manager-desk-edit' pk=desk.pk %}">{{ desk.label }}</a>
<a rel="popup" class="delete" href="{% url 'chrono-manager-desk-delete' pk=desk.pk %}">{% trans "remove" %}</a>
{% if object.prefetched_desks|length > 1 %}<a rel="popup" class="delete" href="{% url 'chrono-manager-desk-delete' pk=desk.pk %}">{% trans "remove" %}</a>{% endif %}
</li>
{% endfor %}
</ul>
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-add-desk' pk=object.id %}">{% trans 'New Desk' %}</a>
</div>
</div>
{% endif %}
@ -139,11 +139,15 @@
{% else %}
<div class="big-msg-info">
{% 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 %}
</div>
{% endif %}
{% if not object.desk_simple_management %}
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-add-desk' pk=object.id %}">{% trans 'New Desk' %}</a>
</div>
{% endif %}
</div>
{% if has_resources %}
@ -164,12 +168,14 @@
{% else %}
<div class="big-msg-info">
{% 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 %}
</div>
{% endif %}
{% endwith %}
<div class="panel--buttons">
<a rel="popup" class="button" href="{% url 'chrono-manager-agenda-add-resource' pk=object.pk %}">{% trans 'Add resource' %}</a>
</div>
</div>
{% endif %}

View File

@ -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'

View File

@ -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