pricing: agenda detail url with slug (#65985)

This commit is contained in:
Lauréline Guérin 2022-06-03 16:53:19 +02:00
parent 9c4ca12b57
commit fcff7a4512
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 22 additions and 0 deletions

View File

@ -138,6 +138,11 @@ urlpatterns = [
staff_member_required(views.agenda_detail),
name='lingo-manager-agenda-detail',
),
url(
r'^agenda/((?P<slug>[-_a-zA-Z0-9]+))/$',
staff_member_required(views.agenda_detail_redirect),
name='lingo-manager-agenda-detail-redirect',
),
url(
r'^agenda/(?P<pk>\d+)/export/$',
staff_member_required(views.agenda_export),

View File

@ -655,6 +655,15 @@ class AgendaDetailView(AgendaMixin, DetailView):
agenda_detail = AgendaDetailView.as_view()
class AgendaDetailRedirectView(RedirectView):
def get_redirect_url(self, *args, **kwargs):
agenda = get_object_or_404(Agenda, slug=kwargs['slug'])
return reverse('lingo-manager-agenda-detail', kwargs={'pk': agenda.pk})
agenda_detail_redirect = AgendaDetailRedirectView.as_view()
class AgendaExport(AgendaMixin, DetailView):
model = Agenda

View File

@ -172,6 +172,14 @@ def test_delete_agenda_pricing(app, admin_user):
assert AgendaPricing.objects.filter(pk=agenda_pricing.pk).exists() is False
def test_detail_agenda_redirect(app, admin_user):
agenda = Agenda.objects.create(label='Foo Bar')
app = login(app)
resp = app.get('/manage/pricing/agenda/%s/' % agenda.slug, status=302)
assert resp.location.endswith('/manage/pricing/agenda/%s/' % agenda.pk)
def test_detail_agenda_pricing(app, admin_user):
agenda = Agenda.objects.create(label='Foo Bar')
pricing = Pricing.objects.create(label='Model')