From 6eaff2aaf0aae67a83fa4c55b532f4482940545f Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Mon, 25 Jan 2016 16:04:53 +0000 Subject: [PATCH] Refactored meeting urls file without changing functionality in prepation for extending some views to handle interims. Reduced the level of redundancy in the way the urls lists were constructed. Commit ready for merge. - Legacy-Id: 10728 --- ietf/meeting/urls.py | 118 +++++++++++++++++++++---------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/ietf/meeting/urls.py b/ietf/meeting/urls.py index 8b7ff00f9..737da88b5 100644 --- a/ietf/meeting/urls.py +++ b/ietf/meeting/urls.py @@ -1,70 +1,70 @@ # Copyright The IETF Trust 2007, All Rights Reserved -from django.conf.urls import patterns +from django.conf.urls import url, include from django.views.generic import RedirectView from ietf.meeting import views from ietf.meeting import ajax -urlpatterns = patterns('', - (r'^(?P\d+)/materials.html$', views.materials), - (r'^agenda/$', views.agenda), - (r'^agenda(-utc)?(?P.html)?$', views.agenda), - (r'^agenda(?P.txt)$', views.agenda), - (r'^agenda(?P.csv)$', views.agenda), - (r'^agenda/edit$', views.edit_agenda), - (r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)), - (r'^requests$', views.meeting_requests), - (r'^agenda/agenda.ics$', views.ical_agenda), - (r'^agenda.ics$', views.ical_agenda), - (r'^agenda/week-view.html$', views.week_view), - (r'^agenda/room-view.html$', views.room_view), - (r'^week-view.html$', views.week_view), - (r'^room-view.html$', views.room_view), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/edit$', views.edit_agenda), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/details$', views.edit_agenda_properties), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+).(?P.html)?/?$', views.agenda), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/permissions$', ajax.agenda_permission_api), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/session/(?P\d+).json$', ajax.assignment_json), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/sessions.json$', ajax.assignments_json), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+).json$', ajax.agenda_infourl), - (r'^(?P\d+)/agenda/edit$', views.edit_agenda), - (r'^(?P\d+)/agenda(-utc)?(?P.html)?/?$', views.agenda), - (r'^(?P\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)), - (r'^(?P\d+)/requests$', views.meeting_requests), - (r'^(?P\d+)/agenda(?P.txt)$', views.agenda), - (r'^(?P\d+)/agenda.ics$', views.ical_agenda), - (r'^(?P\d+)/agenda(?P.csv)$', views.agenda), - (r'^(?P\d+)/agenda/by-room$', views.agenda_by_room), - (r'^(?P\d+)/agenda/by-type$', views.agenda_by_type), - (r'^(?P\d+)/agenda/by-type/(?P[a-z]+)$', views.agenda_by_type), - (r'^(?P\d+)/agenda/by-type/(?P[a-z]+)/ics$', views.agenda_by_type_ics), - (r'^(?P\d+)/agendas/edit$', views.edit_agendas), - (r'^(?P\d+)/timeslots/edit$', views.edit_timeslots), - (r'^(?P\d+)/rooms$', ajax.timeslot_roomsurl), - (r'^(?P\d+)/room/(?P\d+).json$', ajax.timeslot_roomurl), - (r'^(?P\d+)/room/(?P\d+).html$', views.edit_roomurl), - (r'^(?P\d+)/timeslots$', ajax.timeslot_slotsurl), - (r'^(?P\d+)/timeslots.json$', ajax.timeslot_slotsurl), - (r'^(?P\d+)/timeslot/(?P\d+).json$', ajax.timeslot_sloturl), - (r'^(?P\d+)/agendas$', ajax.agenda_infosurl), - (r'^(?P\d+)/agendas.json$', ajax.agenda_infosurl), - (r'^(?P\d+)/week-view.html$', views.week_view), - (r'^(?P\d+)/room-view.html$', views.room_view), - (r'^(?P\d+)/agenda/week-view.html$', views.week_view), - (r'^(?P\d+)/agenda/room-view.html$', views.room_view), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-]+)-drafts.pdf$', views.session_draft_pdf), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-]+)-drafts.tgz$', views.session_draft_tarfile), - (r'^(?P\d+)/agenda/(?P[A-Za-z0-9-]+)/?$', views.session_agenda), - (r'^(?P\d+)/sessions.json', ajax.sessions_json), - (r'^(?P\d+)/session/(?P\d+).json', ajax.session_json), - (r'^(?P\d+)/session/(?P\d+)/constraints.json', ajax.session_constraints), +safe_for_all_meeting_types = [ +] - (r'^(?P\d+)/session/(?P[A-Za-z0-9_\-\+]+)/$', views.session_details), +type_ietf_only_patterns = [ + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/edit$', views.edit_agenda), + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/details$', views.edit_agenda_properties), + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+).(?P.html)?/?$', views.agenda), + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/permissions$', ajax.agenda_permission_api), + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/session/(?P\d+).json$', ajax.assignment_json), + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+)/sessions.json$', ajax.assignments_json), + url(r'^agenda/(?P[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P[A-Za-z0-9-:_]+).json$', ajax.agenda_infourl), + url(r'^agenda/by-room$', views.agenda_by_room), + url(r'^agenda/by-type$', views.agenda_by_type), + url(r'^agenda/by-type/(?P[a-z]+)$', views.agenda_by_type), + url(r'^agenda/by-type/(?P[a-z]+)/ics$', views.agenda_by_type_ics), + url(r'^agendas/edit$', views.edit_agendas), + url(r'^timeslots/edit$', views.edit_timeslots), + url(r'^rooms$', ajax.timeslot_roomsurl), + url(r'^room/(?P\d+).json$', ajax.timeslot_roomurl), + url(r'^room/(?P\d+).html$', views.edit_roomurl), + url(r'^timeslots$', ajax.timeslot_slotsurl), + url(r'^timeslots.json$', ajax.timeslot_slotsurl), + url(r'^timeslot/(?P\d+).json$', ajax.timeslot_sloturl), + url(r'^agendas$', ajax.agenda_infosurl), + url(r'^agendas.json$', ajax.agenda_infosurl), + url(r'^agenda/(?P[A-Za-z0-9-]+)-drafts.pdf$', views.session_draft_pdf), + url(r'^agenda/(?P[A-Za-z0-9-]+)-drafts.tgz$', views.session_draft_tarfile), + url(r'^agenda/(?P[A-Za-z0-9-]+)/?$', views.session_agenda), + url(r'^sessions.json', ajax.sessions_json), + url(r'^session/(?P\d+).json', ajax.session_json), + url(r'^session/(?P\d+)/constraints.json', ajax.session_constraints), + url(r'^session/(?P[A-Za-z0-9_\-\+]+)/$', views.session_details), + url(r'^constraint/(?P\d+).json', ajax.constraint_json), + url(r'^json$', ajax.meeting_json), +] - (r'^(?P\d+)/constraint/(?P\d+).json', ajax.constraint_json), - (r'^(?P\d+).json$', ajax.meeting_json), - (r'^$', views.current_materials), -) +type_ietf_only_patterns_id_optional = [ + url(r'^agenda(-utc)?(?P.html)?/?$', views.agenda), + url(r'^agenda(?P.txt)$', views.agenda), + url(r'^agenda(?P.csv)$', views.agenda), + url(r'^agenda/edit$', views.edit_agenda), + url(r'^requests$', views.meeting_requests), + url(r'^agenda/agenda.ics$', views.ical_agenda), + url(r'^agenda.ics$', views.ical_agenda), + url(r'^agenda/week-view.html$', views.week_view), + url(r'^agenda/room-view.html$', views.room_view), + url(r'^week-view.html$', views.week_view), + url(r'^room-view.html$', views.room_view), +] + +urlpatterns = [ + # TODO - views.material should take num instead of meeting_num so it can move into one of the above lists + url(r'^(?P\d+)/materials.html$', views.materials), + url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)), + url(r'^(?P\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)), + # The optionals have to go first, otherwise the agenda/(owner)/(name)/ patterns match things they shouldn't + url(r'^(?:(?P\d+)/)?', include(type_ietf_only_patterns_id_optional)), + url(r'^(?P\d+)/', include(type_ietf_only_patterns)), + url(r'^$', views.current_materials), +]