def get_urls(self): from ietf.utils.urls import url def wrap(view): def wrapper(*args, **kwargs): return self.admin_site.admin_view(view)(*args, **kwargs) return update_wrapper(wrapper, view) info = self.model._meta.app_label, self.model._meta.model_name urls = [ url(r'^reminder/$', wrap(self.send_reminder), name='%s_%s_reminder' % info), url(r'^(.+)/reminder/$', wrap(self.send_one_reminder), name='%s_%s_one_reminder' % info), ] urls += super(GroupAdmin, self).get_urls() return urls
from django.conf import settings from ietf.secr.sreq import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.main), url(r'^status/$', views.tool_status), url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view), url( r'^(?P<num>[A-Za-z0-9_\-\+]+)/%(acronym)s/view/$' % settings.URL_REGEXPS, views.view), url(r'^%(acronym)s/approve/$' % settings.URL_REGEXPS, views.approve), url(r'^%(acronym)s/cancel/$' % settings.URL_REGEXPS, views.cancel), url(r'^%(acronym)s/confirm/$' % settings.URL_REGEXPS, views.confirm), url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit), url(r'^%(acronym)s/new/$' % settings.URL_REGEXPS, views.new), url(r'^%(acronym)s/no_session/$' % settings.URL_REGEXPS, views.no_session), url( r'^(?P<num>[A-Za-z0-9_\-\+]+)/%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit_mtg), ]
from django.conf import settings from ietf.secr.roles import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.main), url(r'^ajax/get-roles/%(acronym)s/$' % settings.URL_REGEXPS, views.ajax_get_roles), url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role), ]
from django.views.generic import RedirectView from ietf.utils.urls import url urlpatterns = [ url( r'^help/(?:sub)?state/(?:\d+/)?$', RedirectView.as_view(url='/doc/help/state/draft-iesg/', permanent=True)), url( r'^help/evaluation/$', RedirectView.as_view( url='https://www.ietf.org/iesg/voting-procedures.html', permanent=True)), url(r'^status/$', RedirectView.as_view(url='/doc/iesg/', permanent=True)), url(r'^status/last-call/$', RedirectView.as_view(url='/doc/iesg/last-call/', permanent=True)), url(r'^rfc0*(?P<rfc_number>\d+)/$', RedirectView.as_view(url='/doc/rfc%(rfc_number)s/', permanent=True)), url(r'^(?P<name>[^/]+)/$', RedirectView.as_view(url='/doc/%(name)s/', permanent=True)), url(r'^(?P<name>[^/]+)/comment/\d+/$', RedirectView.as_view(url='/doc/%(name)s/history/', permanent=True)), url(r'^$', RedirectView.as_view(url='/doc/', permanent=True)), ]
# Copyright The IETF Trust 2007, All Rights Reserved from ietf.redirects import views from ietf.utils.urls import url urlpatterns = [ url(r'^(?P<script>.*?\.cgi)(/.*)?$', views.redirect), ]
from ietf.submit import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.upload_submission), url(r'^status/$', views.search_submission), url(r'^status/(?P<submission_id>\d+)/$', views.submission_status), url(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.submission_status), url(r'^status/(?P<submission_id>\d+)/confirm/(?P<auth_token>[a-f\d]+)/$', views.confirm_submission), url(r'^status/(?P<submission_id>\d+)/edit/$', views.edit_submission), url(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]+)/edit/$', views.edit_submission), url(r'^note-well/$', views.note_well), url(r'^tool-instructions/$', views.tool_instructions), url(r'^approvals/$', views.approvals), url(r'^approvals/addpreapproval/$', views.add_preapproval), url(r'^approvals/cancelpreapproval/(?P<preapproval_id>[a-f\d]+)/$', views.cancel_preapproval), url(r'^manualpost/$', views.manualpost), url(r'^manualpost/addemail$', views.add_manualpost_email), url( r'^manualpost/addemail/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.add_manualpost_email), url( r'^manualpost/attachment/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<filename>.*)$', views.show_submission_email_attachment), url(r'^manualpost/cancel$', views.cancel_waiting_for_draft), url(r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', views.show_submission_email_message),
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. from django.conf.urls import include from django.views.generic import RedirectView from django.conf import settings from ietf.doc import views_search, views_draft, views_ballot, views_status_change, views_doc, views_downref, views_stats, views_help from ietf.utils.urls import url session_patterns = [ url(r'^add$', views_doc.add_sessionpresentation), url(r'^(?P<session_id>\d+)/edit$', views_doc.edit_sessionpresentation), url(r'^(?P<session_id>\d+)/remove$', views_doc.remove_sessionpresentation), ] urlpatterns = [ url(r'^$', views_search.search), url(r'^(?P<name>[A-Za-z0-9\._\+\-]+)$', views_search.search_for_name), url(r'^search/$', views_search.search), url(r'^in-last-call/$', views_search.drafts_in_last_call), url(r'^ad/(?P<name>[\w.-]+)/$(?u)', views_search.docs_for_ad), url(r'^ad2/(?P<name>[\w.-]+)/$(?u)', RedirectView.as_view(url='/doc/ad/%(name)s/', permanent=True)), url(r'^rfc-status-changes/$', views_status_change.rfc_status_changes), url(r'^start-rfc-status-change/(?:%(name)s/)?$' % settings.URL_REGEXPS, views_status_change.start_rfc_status_change),
# Copyright The IETF Trust 2007, 2009, All Rights Reserved from django.contrib.auth.views import logout from ietf.ietfauth import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.index), url(r'^confirmnewemail/(?P<auth>[^/]+)/$', views.confirm_new_email), url(r'^create/$', views.create_account), url(r'^create/confirm/(?P<auth>[^/]+)/$', views.confirm_account), url(r'^login/$', views.login), url(r'^logout/$', logout), url(r'^password/$', views.change_password), url(r'^profile/$', views.profile), url(r'^reset/$', views.password_reset), url(r'^reset/confirm/(?P<auth>[^/]+)/$', views.confirm_password_reset), url(r'^review/$', views.review_overview), url(r'^testemail/$', views.test_email), url(r'^username/$', views.change_username), url(r'^whitelist/add/?$', views.add_account_whitelist), ]
# Copyright The IETF Trust 2007, All Rights Reserved from django.conf import settings from django.conf.urls import include from django.views.generic import RedirectView from ietf.community import views as community_views from ietf.doc import views_material as material_views from ietf.group import views, milestones as milestone_views from ietf.utils.urls import url # These are not used externally, only in include statements further down: info_detail_urls = [ url(r'^$', views.group_home), url(r'^documents/txt/$', views.group_documents_txt), url(r'^documents/$', views.group_documents), url(r'^documents/manage/$', community_views.manage_list), url(r'^documents/csv/$', community_views.export_to_csv), url(r'^documents/feed/$', community_views.feed), url(r'^documents/subscription/$', community_views.subscription), url(r'^charter/$', views.group_about), url(r'^about/$', views.group_about), url(r'^about/status/$', views.group_about_status), url(r'^about/status/edit/$', views.group_about_status_edit), url(r'^about/status/meeting/(?P<num>\d+)/$', views.group_about_status_meeting), url(r'^history/$',views.history), url(r'^email/$', views.email), url(r'^deps/(?P<output_type>[\w-]+)/$', views.dependencies), url(r'^meetings/$', views.meetings), url(r'^edit/$', views.edit, {'action': "edit"}), url(r'^edit/(?P<field>\w+)/?$', views.edit, {'action': "edit"}),
# Copyright The IETF Trust 2010, All Rights Reserved from ietf.cookies import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.preferences), url(r'^new_enough/(?P<days>.+)$', views.new_enough), url(r'^new_enough/', views.new_enough), url(r'^expires_soon/(?P<days>.+)$', views.expires_soon), url(r'^expires_soon/', views.expires_soon), url(r'^full_draft/(?P<enabled>.+)$', views.full_draft), url(r'^full_draft/', views.full_draft), url(r'^left_menu/(?P<enabled>.+)$', views.left_menu), url(r'^left_menu/', views.left_menu), ]
# Copyright The IETF Trust 2007, All Rights Reserved from django.views.generic import RedirectView from django.http import HttpResponsePermanentRedirect from django.shortcuts import get_object_or_404 from ietf.group.models import Group from ietf.utils.urls import url urlpatterns = [ url(r'^$', RedirectView.as_view(url='/doc/', permanent=True)), url(r'^all/$', RedirectView.as_view(url='/doc/all/', permanent=True)), url(r'^rfc/$', RedirectView.as_view(url='/doc/all/#rfc', permanent=True)), url(r'^dead/$', RedirectView.as_view(url='/doc/all/#expired', permanent=True)), url(r'^current/$', RedirectView.as_view(url='/doc/active/', permanent=True)), url(r'^(?P<object_id>\d+)/(related/)?$', RedirectView.as_view(url='/doc/', permanent=True)), url(r'^(?P<name>[^/]+)/(related/)?$', RedirectView.as_view(url='/doc/%(name)s/', permanent=True)), url(r'^wgid/(?P<id>\d+)/$', lambda request, id: HttpResponsePermanentRedirect("/wg/%s/" % get_object_or_404(Group, id=id).acronym)), url(r'^wg/(?P<acronym>[^/]+)/$', RedirectView.as_view(url='/wg/%(acronym)s/', permanent=True)), url(r'^all_id(?:_txt)?.html$', RedirectView.as_view(url='https://www.ietf.org/id/all_id.txt', permanent=True)), ]
from django.views.generic import RedirectView from ietf.utils.urls import url urlpatterns = [ url(r'^nomcom/$', RedirectView.as_view(url="/nomcom/ann/", permanent=True)), url( r'^nomcom/(?P<message_id>\d+)/$', RedirectView.as_view(url="/nomcom/ann/%(message_id)s/", permanent=True)), ]
from ietf.doc import views_status_change, views_doc from ietf.utils.urls import url urlpatterns = [ url(r'^state/$', views_status_change.change_state), url(r'^submit/$', views_status_change.submit), url(r'^ad/$', views_status_change.edit_ad), url(r'^title/$', views_status_change.edit_title), url(r'^approve/$', views_status_change.approve), url(r'^relations/$', views_status_change.edit_relations), url(r'^last-call/$', views_status_change.last_call), url(r'^telechat/$', views_doc.telechat_date, name='ietf.doc.views_doc.telechat_date;status-change'), url(r'^notices/$', views_doc.edit_notify, name='ietf.doc.views_doc.edit_notify;status-change'), ]
# Copyright The IETF Trust 2011, All Rights Reserved from ietf.doc import views_charter, views_doc from ietf.utils.urls import url urlpatterns = [ url(r'^state/$', views_charter.change_state), url(r'^title/$', views_charter.change_title), url(r'^(?P<option>initcharter|recharter|abandon)/$', views_charter.change_state), url(r'^telechat/$', views_doc.telechat_date, name='ietf.doc.views_doc.telechat_date;charter'), url(r'^notify/$', views_doc.edit_notify, name='ietf.doc.views_doc.edit_notify;charter'), url(r'^ad/$', views_charter.edit_ad), url(r'^action/$', views_charter.action_announcement_text), url(r'^review/$', views_charter.review_announcement_text), url(r'^ballotwriteupnotes/$', views_charter.ballot_writeupnotes), url(r'^approve/$', views_charter.approve), url(r'^submit/(?:(?P<option>initcharter|recharter)/)?$', views_charter.submit), url(r'^withmilestones-(?P<rev>[0-9-]{2,5}).txt$', views_charter.charter_with_milestones_txt), ]
# Copyright The IETF Trust 2007, All Rights Reserved from django.views.generic import RedirectView from ietf.mailinglists import views from ietf.utils.urls import url urlpatterns = [ url(r'^wg/$', views.groups), url(r'^nonwg/$', RedirectView.as_view(url='https://www.ietf.org/list/nonwg.html', permanent=True)), url(r'^nonwg/update/$', RedirectView.as_view(url='https://www.ietf.org/list/nonwg.html', permanent=True)), url(r'^request/$', RedirectView.as_view(url='https://www.ietf.org/list/request.html', permanent=True)), ]
from ietf.secr.telechat import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.main), url(r'^(?P<date>[0-9\-]+)/bash/$', views.bash), url(r'^(?P<date>[0-9\-]+)/doc/$', views.doc), url(r'^(?P<date>[0-9\-]+)/doc/(?P<name>[A-Za-z0-9.-]+)/$', views.doc_detail), url(r'^(?P<date>[0-9\-]+)/doc/(?P<name>[A-Za-z0-9.-]+)/(?P<nav>next|previous)/$', views.doc_navigate), url(r'^(?P<date>[0-9\-]+)/management/$', views.management), url(r'^(?P<date>[0-9\-]+)/minutes/$', views.minutes), url(r'^(?P<date>[0-9\-]+)/roll-call/$', views.roll_call), url(r'^new/$', views.new), ]
from ietf.person import views, ajax from ietf.utils.urls import url urlpatterns = [ url(r'^search/(?P<model_name>(person|email))/$', views.ajax_select2_search), url(r'^(?P<personid>[a-z0-9]+).json$', ajax.person_json), url(r'^(?P<email_or_name>[^/]+)$', views.profile), ]
from ietf.secr.rolodex import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.search), url(r'^add/$', views.add), url(r'^add-proceed/$', views.add_proceed), url(r'^(?P<id>\d{1,6})/edit/$', views.edit), #url(r'^(?P<id>\d{1,6})/delete/$', views.delete), url(r'^(?P<id>\d{1,6})/$', views.view), ]
from ietf.doc import views_conflict_review, views_doc from ietf.utils.urls import url urlpatterns = [ url(r'^state/$', views_conflict_review.change_state), url(r'^submit/$', views_conflict_review.submit), url(r'^ad/$', views_conflict_review.edit_ad), url(r'^approve/$', views_conflict_review.approve), url(r'^start_conflict_review/$', views_conflict_review.start_review), url(r'^telechat/$', views_doc.telechat_date, name='ietf.doc.views_doc.telechat_date;conflict-review'), url(r'^notices/$', views_doc.edit_notify, name='ietf.doc.views_doc.edit_notify;conflict-review'), ]
from django.conf import settings from ietf.stats import views from ietf.utils.urls import url urlpatterns = [ url("^$", views.stats_index), url( "^document/(?:(?P<stats_type>authors|pages|words|format|formlang|author/(?:documents|affiliation|country|continent|citations|hindex)|yearly/(?:affiliation|country|continent))/)?$", views.document_stats), url("^knowncountries/$", views.known_countries_list), url("^meeting/(?P<num>\d+)/(?P<stats_type>country|continent)/$", views.meeting_stats), url("^meeting/(?:(?P<stats_type>overview|country|continent)/)?$", views.meeting_stats), url( "^review/(?:(?P<stats_type>completion|results|states|time)/)?(?:%(acronym)s/)?$" % settings.URL_REGEXPS, views.review_stats), ]
# Copyright The IETF Trust 2016, All Rights Reserved # -*- coding: utf-8 -*- from __future__ import unicode_literals, print_function from django.views.generic import TemplateView from ietf.release import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.release), url(r'^(?P<version>[0-9.]+.*)/$', views.release), url(r'^about/?$', TemplateView.as_view(template_name='release/about.html')), url(r'^stats/?$', views.stats), url(r'^todo/?$', TemplateView.as_view(template_name='release/todo.html')), ]
from ietf.doc import views_review from ietf.utils.urls import url urlpatterns = [ url(r'^$', views_review.request_review), url(r'^(?P<request_id>[0-9]+)/$', views_review.review_request), url(r'^(?P<request_id>[0-9]+)/close/$', views_review.close_request), url(r'^(?P<request_id>[0-9]+)/assignreviewer/$', views_review.assign_reviewer), url(r'^(?P<request_id>[0-9]+)/rejectreviewerassignment/$', views_review.reject_reviewer_assignment), url(r'^(?P<request_id>[0-9]+)/complete/$', views_review.complete_review), url(r'^(?P<request_id>[0-9]+)/searchmailarchive/$', views_review.search_mail_archive), url(r'^(?P<request_id>[0-9]+)/editcomment/$', views_review.edit_comment), ]
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. from django.views.generic import RedirectView from django.conf import settings from ietf.iesg import views from ietf.utils.urls import url urlpatterns = [ url( r'^telechat/.*$', RedirectView.as_view(url='https://www.ietf.org/iesg/minutes.html', permanent=True)), url(r'^ann/(?:ind|new|prev)/$', RedirectView.as_view(url="/iesg/decisions/", permanent=True)), url(r'^telechatdates/$', RedirectView.as_view(url='/admin/iesg/telechatdate/', permanent=True)), url(r'^decisions/(?:(?P<year>[0-9]{4})/)?$', views.review_decisions), url(r'^agenda/(?:%(date)s/)?$' % settings.URL_REGEXPS, views.agenda), url(r'^agenda/(?:%(date)s/)?agenda.txt$' % settings.URL_REGEXPS, views.agenda_txt), url(r'^agenda/(?:%(date)s/)?agenda.json$' % settings.URL_REGEXPS, views.agenda_json), url(r'^agenda/(?:%(date)s/)?scribe_template.html$' % settings.URL_REGEXPS, views.agenda_scribe_template), url( r'^agenda/(?:%(date)s/)?moderator_package.html$' %
from ietf.sync import views from ietf.utils.urls import url urlpatterns = [ url(r'^discrepancies/$', views.discrepancies), url(r'^(?P<org>\w+)/notify/(?P<notification>\w+)/$', views.notify), url(r'^rfceditor/undo/', views.rfceditor_undo) ]
from django.views.generic import RedirectView from django.conf import settings from ietf.doc.feeds import DocumentChangesFeed, InLastCallFeed, RfcFeed from ietf.group.feeds import GroupChangesFeed from ietf.iesg.feeds import IESGAgendaFeed from ietf.ipr.feeds import LatestIprDisclosuresFeed from ietf.liaisons.feeds import LiaisonStatementsFeed from ietf.meeting.feeds import LatestMeetingMaterialFeed from ietf.utils.urls import url urlpatterns = [ url( r'^comments/(?P<remainder>.*)/$', RedirectView.as_view(url='/feed/document-changes/%(remainder)s/', permanent=True)), url(r'^document-changes/%(name)s/$' % settings.URL_REGEXPS, DocumentChangesFeed()), url(r'^last-call/$', InLastCallFeed()), url(r'^group-changes/%(acronym)s/$' % settings.URL_REGEXPS, GroupChangesFeed()), url(r'^iesg-agenda/$', IESGAgendaFeed()), url(r'^ipr/$', LatestIprDisclosuresFeed()), url(r'^liaison/(?P<kind>recent|from|to|subject)/(?:(?P<search>[^/]+)/)?$', LiaisonStatementsFeed()), url(r'^wg-proceedings/$', LatestMeetingMaterialFeed()), url(r'^rfc/$', RfcFeed()) ]
admin.autodiscover() # sometimes, this code gets called more than once, which is an # that seems impossible to work around. try: admin.site.disable_action('delete_selected') except KeyError: pass sitemaps = { 'liaison': LiaisonMap, 'ipr': IPRMap, } urlpatterns = [ url(r'^$', views_search.frontpage), url(r'^accounts/', include('ietf.ietfauth.urls')), url(r'^admin/', include(admin.site.urls)), url(r'^admin/docs/', include('django.contrib.admindocs.urls')), url(r'^ann/', include('ietf.nomcom.redirect_ann_urls')), url(r'^api/', include('ietf.api.urls')), url(r'^community/', include('ietf.community.urls')), url(r'^accounts/settings/', include('ietf.cookies.urls')), url(r'^doc/', include('ietf.doc.urls')), url(r'^drafts/', include('ietf.doc.redirect_drafts_urls')), url(r'^mailtrigger/', include('ietf.mailtrigger.urls')), url(r'^feed/', include('ietf.feed_urls')), url(r'^group/', include(group_urls)), url(r'^help/', include('ietf.help.urls')), url(r'^idtracker/', include('ietf.doc.redirect_idtracker_urls')), url(r'^iesg/', include('ietf.iesg.urls')),
from django.conf import settings from ietf.secr.groups import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.search), url(r'^add/$', views.add), url(r'^blue-dot-report/$', views.blue_dot), url(r'^search/$', views.search), #(r'^ajax/get_ads/$', views.get_ads), url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view), url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role), url(r'^%(acronym)s/charter/$' % settings.URL_REGEXPS, views.charter), url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit), url(r'^%(acronym)s/gm/$' % settings.URL_REGEXPS, views.view_gm), url(r'^%(acronym)s/gm/edit/$' % settings.URL_REGEXPS, views.edit_gm), url(r'^%(acronym)s/people/$' % settings.URL_REGEXPS, views.people), ]
from ietf.doc import views_material from ietf.utils.urls import url urlpatterns = [ url(r'^(?P<action>state|title|abstract|revise)/$', views_material.edit_material), ]
from ietf.help import views from ietf.utils.urls import url urlpatterns = [ url(r'^state/(?P<doc>[-\w]+)/(?P<type>[-\w]+)/?$', views.state), url(r'^state/(?P<doc>[-\w]+)/?$', views.state), url(r'^state/?$', views.state_index), ]
from ietf.secr.meetings import views from ietf.utils.urls import url urlpatterns = [ url(r'^$', views.main), url(r'^add/$', views.add), url(r'^ajax/get-times/(?P<meeting_id>\d{1,6})/(?P<day>\d)/$', views.ajax_get_times), url(r'^blue_sheet/$', views.blue_sheet_redirect), url(r'^(?P<meeting_id>\d{1,6})/$', views.view), url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/$', views.blue_sheet), url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/generate/$', views.blue_sheet_generate), url(r'^(?P<meeting_id>\d{1,6})/edit/$', views.edit_meeting), url(r'^(?P<meeting_id>\d{1,6})/notifications/$', views.notifications), url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/$', views.select), url( r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/$', views.non_session), url( r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/edit/(?P<slot_id>\d{1,6})/$', views.non_session_edit), url( r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/delete/(?P<slot_id>\d{1,6})/$', views.non_session_delete), url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/rooms/$', views.rooms), url( r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/select/$', views.select_group),