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 %} {% endif %}
{% endblock %} {% 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 %} {% block agenda-extra-menu-actions %}
{% if object.desk_simple_management %} {% 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> <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 %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans trimmed %} {% blocktrans trimmed %}
This agenda doesn't have any meeting type yet. Click on the "New Meeting Type" button in This agenda doesn't have any meeting type yet. Click on the "New Meeting Type" button to add a first one.
the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% 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> </div>
{% if object.desk_simple_management %} {% if object.desk_simple_management %}
@ -79,10 +76,13 @@
{% for desk in object.prefetched_desks %} {% for desk in object.prefetched_desks %}
<li> <li>
<a rel="popup" href="{% url 'chrono-manager-desk-edit' pk=desk.pk %}">{{ desk.label }}</a> <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> </li>
{% endfor %} {% endfor %}
</ul> </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> </div>
{% endif %} {% endif %}
@ -139,11 +139,15 @@
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans trimmed %} {% blocktrans trimmed %}
This agenda doesn't have any desk yet. Click on the "New Desk" button in This agenda doesn't have any desk yet. Click on the "New Desk" button to add a first one.
the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% 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> </div>
{% if has_resources %} {% if has_resources %}
@ -164,12 +168,14 @@
{% else %} {% else %}
<div class="big-msg-info"> <div class="big-msg-info">
{% blocktrans trimmed %} {% blocktrans trimmed %}
This agenda doesn't have any resource yet. Click on the "Add resource" button in This agenda doesn't have any resource yet. Click on the "Add resource" button to add a first one.
the top right of the page to add a first one.
{% endblocktrans %} {% endblocktrans %}
</div> </div>
{% endif %} {% endif %}
{% endwith %} {% 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> </div>
{% endif %} {% endif %}

View File

@ -3046,7 +3046,14 @@ class AgendaDateTimePeriodListView(ManagedDeskMixin, ListView):
agenda_date_time_period_list = AgendaDateTimePeriodListView.as_view() 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' template_name = 'chrono/manager_desk_form.html'
model = Desk model = Desk
form_class = NewDeskForm form_class = NewDeskForm
@ -3060,7 +3067,7 @@ class AgendaAddDesk(ManagedAgendaMixin, CreateView):
agenda_add_desk = AgendaAddDesk.as_view() agenda_add_desk = AgendaAddDesk.as_view()
class DeskEditView(ManagedAgendaSubobjectMixin, UpdateView): class DeskEditView(AgendaDeskMixin, ManagedAgendaSubobjectMixin, UpdateView):
template_name = 'chrono/manager_desk_form.html' template_name = 'chrono/manager_desk_form.html'
model = Desk model = Desk
form_class = DeskForm form_class = DeskForm
@ -3073,7 +3080,7 @@ class DeskEditView(ManagedAgendaSubobjectMixin, UpdateView):
desk_edit = DeskEditView.as_view() desk_edit = DeskEditView.as_view()
class DeskDeleteView(ManagedAgendaSubobjectMixin, DeleteView): class DeskDeleteView(AgendaDeskMixin, ManagedAgendaSubobjectMixin, DeleteView):
template_name = 'chrono/manager_confirm_delete.html' template_name = 'chrono/manager_confirm_delete.html'
model = Desk model = Desk
tab_anchor = 'desks' 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('Desk A')
resp = resp.click('Delete') resp = resp.click('Delete')
resp = resp.form.submit() 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 assert Desk.objects.count() == 1
# only one desk # only one desk