Projet

Général

Profil

0002-manager-agenda-settings-url-with-slug-65986.patch

Lauréline Guérin, 03 juin 2022 16:54

Télécharger (2,58 ko)

Voir les différences:

Subject: [PATCH 2/2] manager: agenda settings url with slug (#65986)

 chrono/manager/urls.py    |  5 +++++
 chrono/manager/views.py   |  9 +++++++++
 tests/manager/test_all.py | 11 +++++++++++
 3 files changed, 25 insertions(+)
chrono/manager/urls.py
159 159
        name='chrono-manager-agenda-open-events-view',
160 160
    ),
161 161
    url(r'^agendas/(?P<pk>\d+)/settings$', views.agenda_settings, name='chrono-manager-agenda-settings'),
162
    url(
163
        r'^agendas/(?P<slug>[-_a-zA-Z0-9]+)/settings/$',
164
        views.agenda_settings_redirect_view,
165
        name='chrono-manager-agenda-settings-redirect',
166
    ),
162 167
    url(r'^agendas/(?P<pk>\d+)/edit$', views.agenda_edit, name='chrono-manager-agenda-edit'),
163 168
    url(
164 169
        r'^agendas/(?P<pk>\d+)/booking-delays$',
chrono/manager/views.py
1834 1834
            )
1835 1835

  
1836 1836

  
1837
class AgendaSettingsRedirectView(RedirectView):
1838
    def get_redirect_url(self, *args, **kwargs):
1839
        agenda = get_object_or_404(Agenda, slug=kwargs['slug'])
1840
        return reverse('chrono-manager-agenda-settings', kwargs={'pk': agenda.pk})
1841

  
1842

  
1843
agenda_settings_redirect_view = AgendaSettingsRedirectView.as_view()
1844

  
1845

  
1837 1846
class AgendaSettings(ManagedAgendaMixin, DetailView):
1838 1847
    model = Agenda
1839 1848

  
tests/manager/test_all.py
371 371
    assert agenda.desk_set.count() == 1
372 372

  
373 373

  
374
def test_options_agenda_redirect(app, admin_user):
375
    agenda = Agenda.objects.create(label='Foo Bar')
376

  
377
    app = login(app)
378
    for kind in ['events', 'meetings', 'virtual']:
379
        agenda.kind = kind
380
        agenda.save()
381
        resp = app.get('/manage/agendas/%s/settings/' % agenda.slug, status=302)
382
        assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.pk)
383

  
384

  
374 385
def test_options_agenda(app, admin_user):
375 386
    agenda_events = Agenda.objects.create(label='Foo bar', kind='events')
376 387
    Desk.objects.create(agenda=agenda_events, slug='_exceptions_holder')
377
-