PonyConf/cfp/urls.py

79 lines
6.9 KiB
Python

from django.urls import path, re_path, register_converter, include
from . import views, converters
register_converter(converters.SignedIntConverter, 'sint')
urlpatterns = [
path('', views.home, name='home'),
path('cfp/', views.proposal_home, name='proposal-home'),
path('cfp/token/', views.proposal_mail_token, name='proposal-mail-token'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?dashboard/$', views.proposal_dashboard, name='proposal-dashboard'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?profile/$', views.proposal_speaker_edit, name='proposal-profile-edit'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/add/$', views.proposal_talk_edit, name='proposal-talk-add'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/$', views.proposal_talk_details, name='proposal-talk-details'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/edit/$', views.proposal_talk_edit, name='proposal-talk-edit'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/speaker/add/$', views.proposal_speaker_edit, name='proposal-speaker-add'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/speaker/add/(?P<speaker_id>[0-9]+)/$', views.proposal_speaker_add, name='proposal-speaker-add-existing'),
#re_path(r'^cfp(?:/(?P<speaker_token>[\w\-]+))?/talk/(?P<talk_id>[0-9]+)/speaker/(?P<co_speaker_id>[0-9]+)/$', views.proposal_speaker_details, name='proposal-speaker-details'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/speaker/(?P<co_speaker_id>[0-9]+)/edit/$', views.proposal_speaker_edit, name='proposal-speaker-edit'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/speaker/(?P<co_speaker_id>[0-9]+)/remove/$', views.proposal_speaker_remove, name='proposal-speaker-remove'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/confirm/$', views.proposal_talk_acknowledgment, {'confirm': True}, name='proposal-talk-confirm'),
re_path(r'^cfp/(?:(?P<speaker_token>[\w\-]+)/)?talk/(?P<talk_id>[0-9]+)/desist/$', views.proposal_talk_acknowledgment, {'confirm': False}, name='proposal-talk-desist'),
path('volunteer/enrole', views.volunteer_enrole, name='volunteer-enrole'),
path('volunteer/token/', views.volunteer_mail_token, name='volunteer-mail-token'),
re_path(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?$', views.volunteer_dashboard, name='volunteer-dashboard'),
re_path(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?profile/$', views.volunteer_profile, name='volunteer-profile-edit'),
re_path(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?join/(?P<activity>[\w\-]+)/$', views.volunteer_update_activity, {'join': True}, name='volunteer-join'),
re_path(r'^volunteer/(?:(?P<volunteer_token>[\w\-]+)/)?quit/(?P<activity>[\w\-]+)/$', views.volunteer_update_activity, {'join': False}, name='volunteer-quit'),
path('staff/', views.staff, name='staff'),
path('staff/talks/', views.talk_list, name='talk-list'),
path('staff/talks/<int:talk_id>/', views.talk_details, name='talk-details'),
path('staff/talks/<int:talk_id>/vote/<sint:score>/', views.talk_vote, name='talk-vote'),
path('staff/talks/<int:talk_id>/accept/', views.talk_decide, {'accept': True}, name='talk-accept'),
path('staff/talks/<int:talk_id>/decline/', views.talk_decide, {'accept': False}, name='talk-decline'),
path('staff/talks/<int:talk_id>/confirm/', views.talk_acknowledgment, {'confirm': True}, name='talk-confirm-by-staff'),
path('staff/talks/<int:talk_id>/desist/', views.talk_acknowledgment, {'confirm': False}, name='talk-desist-by-staff'),
path('staff/talks/<int:talk_id>/edit/', views.TalkUpdate.as_view(), name='talk-edit'),
path('staff/talks/email/', views.talk_email, name='talk-email'),
path('staff/talks/email/preview/', views.talk_email_preview, name='talk-email-preview'),
path('staff/speakers/', views.participant_list, name='participant-list'),
path('staff/speakers/add/', views.ParticipantCreate.as_view(), name='participant-add'),
path('staff/speakers/<int:participant_id>/', views.participant_details, name='participant-details'),
path('staff/speakers/<int:participant_id>/add-talk/', views.participant_add_talk, name='participant-add-talk'),
path('staff/speakers/<int:participant_id>/edit/', views.ParticipantUpdate.as_view(), name='participant-edit'),
path('staff/speakers/<int:participant_id>/remove/', views.ParticipantRemove.as_view(), name='participant-remove'),
path('staff/speakers/email/', views.speaker_email, name='speaker-email'),
path('staff/speakers/email/preview/', views.speaker_email_preview, name='speaker-email-preview'),
path('staff/tracks/', views.TrackList.as_view(), name='track-list'),
path('staff/tracks/add/', views.TrackCreate.as_view(), name='track-add'),
path('staff/tracks/<slug:slug>/edit/', views.TrackUpdate.as_view(), name='track-edit'),
path('staff/rooms/', views.RoomList.as_view(), name='room-list'),
path('staff/rooms/add/', views.RoomCreate.as_view(), name='room-add'),
path('staff/rooms/<slug:slug>/', views.RoomDetail.as_view(), name='room-details'),
path('staff/rooms/<slug:slug>/edit/', views.RoomUpdate.as_view(), name='room-edit'),
path('staff/volunteers/', views.volunteer_list, name='volunteer-list'),
path('staff/volunteers/<int:volunteer_id>/', views.volunteer_details, name='volunteer-details'),
path('staff/volunteers/email/', views.volunteer_email, name='volunteer-email'),
path('staff/volunteers/email/preview/', views.volunteer_email_preview, name='volunteer-email-preview'),
path('staff/add-user/', views.create_user, name='create-user'),
re_path(r'^staff/schedule/((?P<program_format>[\w]+)/)?$', views.staff_schedule, name='staff-schedule'),
path('staff/select2/', include('django_select2.urls')),
path('admin/', views.admin, name='admin'),
path('admin/conference/', views.conference_edit, name='conference-edit'),
path('admin/homepage/', views.homepage_edit, name='homepage-edit'),
path('admin/categories/', views.TalkCategoryList.as_view(), name='category-list'),
path('admin/categories/add/', views.TalkCategoryCreate.as_view(), name='category-add'),
path('admin/categories/<int:pk>/edit/', views.TalkCategoryUpdate.as_view(), name='category-edit'),
path('admin/tags/', views.TagList.as_view(), name='tag-list'),
path('admin/tags/add/', views.TagCreate.as_view(), name='tag-add'),
path('admin/tags/<slug:slug>/edit/', views.TagUpdate.as_view(), name='tag-edit'),
path('admin/activities/', views.ActivityList.as_view(), name='activity-list'),
path('admin/activities/add/', views.ActivityCreate.as_view(), name='activity-add'),
path('admin/activities/<slug:slug>/edit/', views.ActivityUpdate.as_view(), name='activity-edit'),
path('admin/evict/', views.schedule_evict, name='schedule-evict'),
re_path(r'^schedule/((?P<program_format>[\w]+)/)?$', views.public_schedule, name='public-schedule'),
]