url(r'^speech/add$', SpeechCreate.as_view(), name='speech-add'), url(r'^speech/ajax_audio$', SpeechAudioCreate.as_view(), name='speech-ajax-audio'), url(r'^speech/(?P<pk>\d+)$', SpeechView.as_view(), name='speech-view'), url(r'^speech/(?P<pk>\d+)/edit$', SpeechUpdate.as_view(), name='speech-edit'), url(r'^speech/(?P<pk>\d+)/delete$', SpeechDelete.as_view(), name='speech-delete'), url(r'^speakers$', SpeakerList.as_view(), name='speaker-list'), url(r'^speaker/subscribe$', SpeakerSubscribe.as_view(), name='speaker-subscribe'), url(r'^speaker/add$', SpeakerCreate.as_view(), name='speaker-add'), url(r'^speaker/(?P<pk>\d+)/edit$', SpeakerUpdate.as_view(), name='speaker-edit'), url(r'^speaker/(?P<pk>\d+)/delete$', SpeakerDelete.as_view(), name='speaker-delete'), url(r'^speaker/(?P<slug>.+)$', SpeakerView.as_view(), name='speaker-view'), url(r'^section/add$', SectionCreate.as_view(), name='section-add'), url(r'^section/(?P<pk>\d+)$', SectionView.as_view(), name='section-id-view'), url(r'^section/(?P<pk>\d+)/edit$', SectionUpdate.as_view(), name='section-edit'), url(r'^section/(?P<pk>\d+)/delete$', SectionDelete.as_view(), name='section-delete'), url(r'^speeches$', ParentlessList.as_view(), name='parentless-list'), url(r'^recordings$', RecordingList.as_view(), name='recording-list'), url(r'^recording/(?P<pk>\d+)$', RecordingView.as_view(), name='recording-view'), url(r'^recording/(?P<pk>\d+)/edit$', RecordingUpdate.as_view(), name='recording-edit'), url(r'^api/v0.1/recording/$', csrf_exempt(RecordingAPICreate.as_view()), name='recording-api-add'), url(r'^import/popolo', PopoloImportView.as_view(), name='import-popolo'), url(r'^import/akomantoso', AkomaNtosoImportView.as_view(), name='import-akoma-ntoso'), ] if v01_api is not None: urlpatterns += [url(r'^api/', include(v01_api.urls))]
# place_patterns, we reinstate it here url( r'^place/all/', PlaceKindList.as_view(), name='place_kind_all' ), url(r'^place/(?P<slug>[-\w]+)/$', SAPlaceDetailView.as_view(), name='place'), url(r'^place/(?P<slug>[-\w]+)/places/', SAPlaceDetailSub.as_view(), {'sub_page': 'places'}, name='place_places'), # Catch the newsletter info page to change the template used so that the signup form is injected. # NOTE - you still need to create an InfoPage with the slug 'newsletter' for this not to 404. url(r'^info/newsletter', SANewsletterPage.as_view(), {'slug': 'newsletter'}, name='info_page_newsletter'), ) sayit_patterns = patterns('', # Exposed endpoints url(r'^(?P<pk>\d+)$', SectionView.as_view(), name='section-view'), url(r'^speech/(?P<pk>\d+)$', SpeechView.as_view(), name='speech-view'), # Fake endpoint to redirect url(r'^speaker/(?P<pk>\d+)$', SASpeakerRedirectView.as_view(), name='speaker-view'), ) hansard_patterns = sayit_patterns + patterns('', # special Hansard index page that provides listing of the hansard sessions that contain speeches. url(r'^$', SAHansardIndex.as_view(), name='section-list'), ) committee_patterns = patterns('', # Exposed endpoints url(r'^(?P<pk>\d+)$', SACommitteeSectionRedirectView.as_view(), name='section-view'), url(r'^speech/(?P<pk>\d+)$', SACommitteeSpeechRedirectView.as_view(), name='speech-view'),
url(r'^search/', lambda request: InstanceSearchView()(request), name='haystack_search'), url(r'^speech/add$', SpeechCreate.as_view(), name='speech-add'), url(r'^speech/ajax_audio$', SpeechAudioCreate.as_view(), name='speech-ajax-audio'), url(r'^speech/(?P<pk>\d+)$', SpeechView.as_view(), name='speech-view'), url(r'^speech/(?P<pk>\d+)/edit$', SpeechUpdate.as_view(), name='speech-edit'), url(r'^speech/(?P<pk>\d+)/delete$', SpeechDelete.as_view(), name='speech-delete'), url(r'^speakers$', SpeakerList.as_view(), name='speaker-list'), url(r'^speaker/add$', SpeakerCreate.as_view(), name='speaker-add'), url(r'^speaker/(?P<pk>\d+)/edit$', SpeakerUpdate.as_view(), name='speaker-edit'), url(r'^speaker/(?P<pk>\d+)/delete$', SpeakerDelete.as_view(), name='speaker-delete'), url(r'^speaker/(?P<slug>.+)$', SpeakerView.as_view(), name='speaker-view'), url(r'^section/add$', SectionCreate.as_view(), name='section-add'), url(r'^section/(?P<pk>\d+)$', SectionView.as_view(), name='section-id-view'), url(r'^section/(?P<pk>\d+)/edit$', SectionUpdate.as_view(), name='section-edit'), url(r'^section/(?P<pk>\d+)/delete$', SectionDelete.as_view(), name='section-delete'), url(r'^speeches$', ParentlessList.as_view(), name='parentless-list'), url(r'^recordings$', RecordingList.as_view(), name='recording-list'), url(r'^recording/(?P<pk>\d+)$', RecordingView.as_view(), name='recording-view'), url(r'^recording/(?P<pk>\d+)/edit$', RecordingUpdate.as_view(), name='recording-edit'), url(r'^api/v0.1/recording/$', csrf_exempt(RecordingAPICreate.as_view()), name='recording-api-add'), url(r'^import/popolo', PopoloImportView.as_view(), name='import-popolo'), url(r'^import/akomantoso', AkomaNtosoImportView.as_view(), name='import-akoma-ntoso'), ] if v01_api is not None: urlpatterns += [url(r'^api/', include(v01_api.urls))]
name='speech-edit'), url(r'^speech/(?P<pk>\d+)/delete$', SpeechDelete.as_view(), name='speech-delete'), url(r'^speakers$', SpeakerList.as_view(), name='speaker-list'), url(r'^speaker/add$', SpeakerCreate.as_view(), name='speaker-add'), url(r'^speaker/(?P<pk>\d+)/edit$', SpeakerUpdate.as_view(), name='speaker-edit'), url(r'^speaker/(?P<pk>\d+)/delete$', SpeakerDelete.as_view(), name='speaker-delete'), url(r'^speaker/(?P<slug>.+)$', SpeakerView.as_view(), name='speaker-view'), url(r'^section/add$', SectionCreate.as_view(), name='section-add'), url(r'^section/(?P<pk>\d+)$', SectionView.as_view(), name='section-id-view'), url(r'^section/(?P<pk>\d+)/edit$', SectionUpdate.as_view(), name='section-edit'), url(r'^section/(?P<pk>\d+)/delete$', SectionDelete.as_view(), name='section-delete'), url(r'^speeches$', ParentlessList.as_view(), name='parentless-list'), url(r'^recordings$', RecordingList.as_view(), name='recording-list'), url(r'^recording/(?P<pk>\d+)$', RecordingView.as_view(), name='recording-view'), url(r'^recording/(?P<pk>\d+)/edit$', RecordingUpdate.as_view(), name='recording-edit'),