manager: event detail url with slugs (#75111)
gitea/chrono/pipeline/head This commit looks good
Details
gitea/chrono/pipeline/head This commit looks good
Details
This commit is contained in:
parent
84d8a3a65e
commit
87783c980a
|
@ -219,6 +219,11 @@ urlpatterns = [
|
||||||
views.event_view,
|
views.event_view,
|
||||||
name='chrono-manager-event-view',
|
name='chrono-manager-event-view',
|
||||||
),
|
),
|
||||||
|
re_path(
|
||||||
|
r'^agendas/(?P<slug>[-_a-zA-Z0-9]+)/events/(?P<event_slug>[-_a-zA-Z0-9]+)/$',
|
||||||
|
views.event_redirect_view,
|
||||||
|
name='chrono-manager-event-redirect',
|
||||||
|
),
|
||||||
path(
|
path(
|
||||||
'agendas/<int:pk>/events/<int:event_pk>/edit',
|
'agendas/<int:pk>/events/<int:event_pk>/edit',
|
||||||
views.event_edit,
|
views.event_edit,
|
||||||
|
|
|
@ -2462,6 +2462,16 @@ class EventDetailView(ViewableAgendaMixin, DetailView):
|
||||||
event_view = EventDetailView.as_view()
|
event_view = EventDetailView.as_view()
|
||||||
|
|
||||||
|
|
||||||
|
class EventDetailRedirectView(RedirectView):
|
||||||
|
def get_redirect_url(self, *args, **kwargs):
|
||||||
|
agenda = get_object_or_404(Agenda, slug=kwargs['slug'])
|
||||||
|
event = get_object_or_404(Event, slug=kwargs['event_slug'], agenda=agenda)
|
||||||
|
return reverse('chrono-manager-event-view', kwargs={'pk': agenda.pk, 'event_pk': event.pk})
|
||||||
|
|
||||||
|
|
||||||
|
event_redirect_view = EventDetailRedirectView.as_view()
|
||||||
|
|
||||||
|
|
||||||
class EventEditView(ManagedAgendaMixin, UpdateView):
|
class EventEditView(ManagedAgendaMixin, UpdateView):
|
||||||
template_name = 'chrono/manager_event_form.html'
|
template_name = 'chrono/manager_event_form.html'
|
||||||
model = Event
|
model = Event
|
||||||
|
|
|
@ -1194,6 +1194,21 @@ def test_event_detail(app, admin_user, get_proper_html_str):
|
||||||
assert '<b>User 2</b> Foo Bar, May 24, 2022, 2 a.m.' in resp.text
|
assert '<b>User 2</b> Foo Bar, May 24, 2022, 2 a.m.' in resp.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_event_detail_redirect(app, admin_user):
|
||||||
|
agenda = Agenda.objects.create(label='Events', kind='events')
|
||||||
|
event = Event.objects.create(
|
||||||
|
label='xyz',
|
||||||
|
start_datetime=now() + datetime.timedelta(days=1),
|
||||||
|
places=10,
|
||||||
|
waiting_list_places=2,
|
||||||
|
agenda=agenda,
|
||||||
|
)
|
||||||
|
|
||||||
|
login(app)
|
||||||
|
resp = app.get('/manage/agendas/%s/events/%s/' % (agenda.slug, event.slug), status=302)
|
||||||
|
assert resp.location.endswith('/manage/agendas/%s/events/%s/' % (agenda.pk, event.pk))
|
||||||
|
|
||||||
|
|
||||||
def test_event_cancellation(app, admin_user):
|
def test_event_cancellation(app, admin_user):
|
||||||
agenda = Agenda.objects.create(label='Events', kind='events')
|
agenda = Agenda.objects.create(label='Events', kind='events')
|
||||||
event = Event.objects.create(
|
event = Event.objects.create(
|
||||||
|
|
Loading…
Reference in New Issue