Skip to content

Commit 6eaff2a

Browse files
committed
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
1 parent 87e2653 commit 6eaff2a

1 file changed

Lines changed: 59 additions & 59 deletions

File tree

ietf/meeting/urls.py

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,70 @@
11
# Copyright The IETF Trust 2007, All Rights Reserved
22

3-
from django.conf.urls import patterns
3+
from django.conf.urls import url, include
44
from django.views.generic import RedirectView
55

66
from ietf.meeting import views
77
from ietf.meeting import ajax
88

9-
urlpatterns = patterns('',
10-
(r'^(?P<meeting_num>\d+)/materials.html$', views.materials),
11-
(r'^agenda/$', views.agenda),
12-
(r'^agenda(-utc)?(?P<ext>.html)?$', views.agenda),
13-
(r'^agenda(?P<ext>.txt)$', views.agenda),
14-
(r'^agenda(?P<ext>.csv)$', views.agenda),
15-
(r'^agenda/edit$', views.edit_agenda),
16-
(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
17-
(r'^requests$', views.meeting_requests),
18-
(r'^agenda/agenda.ics$', views.ical_agenda),
19-
(r'^agenda.ics$', views.ical_agenda),
20-
(r'^agenda/week-view.html$', views.week_view),
21-
(r'^agenda/room-view.html$', views.room_view),
22-
(r'^week-view.html$', views.week_view),
23-
(r'^room-view.html$', views.room_view),
24-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/edit$', views.edit_agenda),
25-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/details$', views.edit_agenda_properties),
26-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+).(?P<ext>.html)?/?$', views.agenda),
27-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/permissions$', ajax.agenda_permission_api),
28-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/session/(?P<assignment_id>\d+).json$', ajax.assignment_json),
29-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/sessions.json$', ajax.assignments_json),
30-
(r'^(?P<num>\d+)/agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+).json$', ajax.agenda_infourl),
31-
(r'^(?P<num>\d+)/agenda/edit$', views.edit_agenda),
32-
(r'^(?P<num>\d+)/agenda(-utc)?(?P<ext>.html)?/?$', views.agenda),
33-
(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
34-
(r'^(?P<num>\d+)/requests$', views.meeting_requests),
35-
(r'^(?P<num>\d+)/agenda(?P<ext>.txt)$', views.agenda),
36-
(r'^(?P<num>\d+)/agenda.ics$', views.ical_agenda),
37-
(r'^(?P<num>\d+)/agenda(?P<ext>.csv)$', views.agenda),
38-
(r'^(?P<num>\d+)/agenda/by-room$', views.agenda_by_room),
39-
(r'^(?P<num>\d+)/agenda/by-type$', views.agenda_by_type),
40-
(r'^(?P<num>\d+)/agenda/by-type/(?P<type>[a-z]+)$', views.agenda_by_type),
41-
(r'^(?P<num>\d+)/agenda/by-type/(?P<type>[a-z]+)/ics$', views.agenda_by_type_ics),
42-
(r'^(?P<num>\d+)/agendas/edit$', views.edit_agendas),
43-
(r'^(?P<num>\d+)/timeslots/edit$', views.edit_timeslots),
44-
(r'^(?P<num>\d+)/rooms$', ajax.timeslot_roomsurl),
45-
(r'^(?P<num>\d+)/room/(?P<roomid>\d+).json$', ajax.timeslot_roomurl),
46-
(r'^(?P<num>\d+)/room/(?P<roomid>\d+).html$', views.edit_roomurl),
47-
(r'^(?P<num>\d+)/timeslots$', ajax.timeslot_slotsurl),
48-
(r'^(?P<num>\d+)/timeslots.json$', ajax.timeslot_slotsurl),
49-
(r'^(?P<num>\d+)/timeslot/(?P<slotid>\d+).json$', ajax.timeslot_sloturl),
50-
(r'^(?P<num>\d+)/agendas$', ajax.agenda_infosurl),
51-
(r'^(?P<num>\d+)/agendas.json$', ajax.agenda_infosurl),
52-
(r'^(?P<num>\d+)/week-view.html$', views.week_view),
53-
(r'^(?P<num>\d+)/room-view.html$', views.room_view),
54-
(r'^(?P<num>\d+)/agenda/week-view.html$', views.week_view),
55-
(r'^(?P<num>\d+)/agenda/room-view.html$', views.room_view),
56-
(r'^(?P<num>\d+)/agenda/(?P<session>[A-Za-z0-9-]+)-drafts.pdf$', views.session_draft_pdf),
57-
(r'^(?P<num>\d+)/agenda/(?P<session>[A-Za-z0-9-]+)-drafts.tgz$', views.session_draft_tarfile),
58-
(r'^(?P<num>\d+)/agenda/(?P<session>[A-Za-z0-9-]+)/?$', views.session_agenda),
59-
(r'^(?P<num>\d+)/sessions.json', ajax.sessions_json),
60-
(r'^(?P<num>\d+)/session/(?P<sessionid>\d+).json', ajax.session_json),
61-
(r'^(?P<num>\d+)/session/(?P<sessionid>\d+)/constraints.json', ajax.session_constraints),
9+
safe_for_all_meeting_types = [
10+
]
6211

63-
(r'^(?P<num>\d+)/session/(?P<acronym>[A-Za-z0-9_\-\+]+)/$', views.session_details),
12+
type_ietf_only_patterns = [
13+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/edit$', views.edit_agenda),
14+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/details$', views.edit_agenda_properties),
15+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+).(?P<ext>.html)?/?$', views.agenda),
16+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/permissions$', ajax.agenda_permission_api),
17+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/session/(?P<assignment_id>\d+).json$', ajax.assignment_json),
18+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+)/sessions.json$', ajax.assignments_json),
19+
url(r'^agenda/(?P<owner>[A-Za-z0-9-.+_]+@[A-Za-z0-9._]+)/(?P<name>[A-Za-z0-9-:_]+).json$', ajax.agenda_infourl),
20+
url(r'^agenda/by-room$', views.agenda_by_room),
21+
url(r'^agenda/by-type$', views.agenda_by_type),
22+
url(r'^agenda/by-type/(?P<type>[a-z]+)$', views.agenda_by_type),
23+
url(r'^agenda/by-type/(?P<type>[a-z]+)/ics$', views.agenda_by_type_ics),
24+
url(r'^agendas/edit$', views.edit_agendas),
25+
url(r'^timeslots/edit$', views.edit_timeslots),
26+
url(r'^rooms$', ajax.timeslot_roomsurl),
27+
url(r'^room/(?P<roomid>\d+).json$', ajax.timeslot_roomurl),
28+
url(r'^room/(?P<roomid>\d+).html$', views.edit_roomurl),
29+
url(r'^timeslots$', ajax.timeslot_slotsurl),
30+
url(r'^timeslots.json$', ajax.timeslot_slotsurl),
31+
url(r'^timeslot/(?P<slotid>\d+).json$', ajax.timeslot_sloturl),
32+
url(r'^agendas$', ajax.agenda_infosurl),
33+
url(r'^agendas.json$', ajax.agenda_infosurl),
34+
url(r'^agenda/(?P<session>[A-Za-z0-9-]+)-drafts.pdf$', views.session_draft_pdf),
35+
url(r'^agenda/(?P<session>[A-Za-z0-9-]+)-drafts.tgz$', views.session_draft_tarfile),
36+
url(r'^agenda/(?P<session>[A-Za-z0-9-]+)/?$', views.session_agenda),
37+
url(r'^sessions.json', ajax.sessions_json),
38+
url(r'^session/(?P<sessionid>\d+).json', ajax.session_json),
39+
url(r'^session/(?P<sessionid>\d+)/constraints.json', ajax.session_constraints),
40+
url(r'^session/(?P<acronym>[A-Za-z0-9_\-\+]+)/$', views.session_details),
41+
url(r'^constraint/(?P<constraintid>\d+).json', ajax.constraint_json),
42+
url(r'^json$', ajax.meeting_json),
43+
]
6444

65-
(r'^(?P<num>\d+)/constraint/(?P<constraintid>\d+).json', ajax.constraint_json),
66-
(r'^(?P<num>\d+).json$', ajax.meeting_json),
67-
(r'^$', views.current_materials),
68-
)
45+
type_ietf_only_patterns_id_optional = [
46+
url(r'^agenda(-utc)?(?P<ext>.html)?/?$', views.agenda),
47+
url(r'^agenda(?P<ext>.txt)$', views.agenda),
48+
url(r'^agenda(?P<ext>.csv)$', views.agenda),
49+
url(r'^agenda/edit$', views.edit_agenda),
50+
url(r'^requests$', views.meeting_requests),
51+
url(r'^agenda/agenda.ics$', views.ical_agenda),
52+
url(r'^agenda.ics$', views.ical_agenda),
53+
url(r'^agenda/week-view.html$', views.week_view),
54+
url(r'^agenda/room-view.html$', views.room_view),
55+
url(r'^week-view.html$', views.week_view),
56+
url(r'^room-view.html$', views.room_view),
57+
]
58+
59+
urlpatterns = [
60+
# TODO - views.material should take num instead of meeting_num so it can move into one of the above lists
61+
url(r'^(?P<meeting_num>\d+)/materials.html$', views.materials),
62+
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
63+
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
64+
# The optionals have to go first, otherwise the agenda/(owner)/(name)/ patterns match things they shouldn't
65+
url(r'^(?:(?P<num>\d+)/)?', include(type_ietf_only_patterns_id_optional)),
66+
url(r'^(?P<num>\d+)/', include(type_ietf_only_patterns)),
67+
url(r'^$', views.current_materials),
68+
]
6969

7070

0 commit comments

Comments
 (0)