diff --git a/chrono/api/urls.py b/chrono/api/urls.py
index f1609733..fa8eca01 100644
--- a/chrono/api/urls.py
+++ b/chrono/api/urls.py
@@ -14,119 +14,127 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.urls import path, re_path
from . import views
urlpatterns = [
- url(r'^agenda/$', views.agendas),
- url(r'^agendas/datetimes/$', views.agendas_datetimes, name='api-agendas-datetimes'),
- url(r'^agendas/recurring-events/$', views.recurring_events_list, name='api-agenda-recurring-events'),
- url(r'^agendas/recurring-events/fillslots/$', views.recurring_fillslots, name='api-recurring-fillslots'),
- url(
- r'^agendas/events/$',
+ path('agenda/', views.agendas),
+ path('agendas/datetimes/', views.agendas_datetimes, name='api-agendas-datetimes'),
+ path('agendas/recurring-events/', views.recurring_events_list, name='api-agenda-recurring-events'),
+ path('agendas/recurring-events/fillslots/', views.recurring_fillslots, name='api-recurring-fillslots'),
+ path(
+ 'agendas/events/',
views.agendas_events,
name='api-agendas-events',
),
- url(
- r'^agendas/events/fillslots/$',
+ path(
+ 'agendas/events/fillslots/',
views.agendas_events_fillslots,
name='api-agendas-events-fillslots',
),
- url(
- r'^agendas/events/check-status/$',
+ path(
+ 'agendas/events/check-status/',
views.agendas_events_check_status,
name='api-agendas-events-check-status',
),
- url(r'^agenda/(?P[\w-]+)/$', views.agenda),
- url(r'^agenda/(?P[\w-]+)/datetimes/$', views.datetimes, name='api-agenda-datetimes'),
- url(
+ re_path(r'^agenda/(?P[\w-]+)/$', views.agenda),
+ re_path(
+ r'^agenda/(?P[\w-]+)/datetimes/$', views.datetimes, name='api-agenda-datetimes'
+ ),
+ re_path(
r'^agenda/(?P[\w-]+)/fillslot/(?P[\w:-]+)/$',
views.fillslot,
name='api-fillslot',
),
- url(r'^agenda/(?P[\w-]+)/fillslots/$', views.fillslots, name='api-agenda-fillslots'),
- url(
+ re_path(
+ r'^agenda/(?P[\w-]+)/fillslots/$', views.fillslots, name='api-agenda-fillslots'
+ ),
+ re_path(
r'^agenda/(?P[\w-]+)/events/fillslots/$',
views.events_fillslots,
name='api-agenda-events-fillslots',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/event/$',
views.events,
name='api-events',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/event/(?P[\w:-]+)/$',
views.event,
name='api-event',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/status/(?P[\w:-]+)/$',
views.event_status,
name='api-event-status',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/bookings/(?P[\w:-]+)/$',
views.event_bookings,
name='api-event-bookings',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/check/(?P[\w:-]+)/$',
views.event_check,
name='api-event-check',
),
- url(
+ re_path(
r'^agenda/meetings/(?P[\w-]+)/datetimes/$',
views.meeting_datetimes,
name='api-agenda-meeting-datetimes-legacy',
),
- url(r'^agenda/(?P[\w-]+)/meetings/$', views.meeting_list, name='api-agenda-meetings'),
- url(
+ re_path(
+ r'^agenda/(?P[\w-]+)/meetings/$', views.meeting_list, name='api-agenda-meetings'
+ ),
+ re_path(
r'^agenda/(?P[\w-]+)/meetings/(?P[\w-]+)/$',
views.meeting_info,
name='api-agenda-meetings',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/resources/$',
views.agenda_resource_list,
name='api-agenda-resources',
),
- url(r'^agenda/(?P[\w-]+)/desks/$', views.agenda_desk_list, name='api-agenda-desks'),
- url(
+ re_path(
+ r'^agenda/(?P[\w-]+)/desks/$', views.agenda_desk_list, name='api-agenda-desks'
+ ),
+ re_path(
r'^agenda/(?P[\w-]+)/meetings/(?P[\w-]+)/datetimes/$',
views.meeting_datetimes,
name='api-agenda-meeting-datetimes',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/subscription/$',
views.subscriptions,
name='api-agenda-subscriptions',
),
- url(
+ re_path(
r'^agenda/(?P[\w-]+)/subscription/(?P\d+)/$',
views.subscription,
name='api-agenda-subscription',
),
- url(r'^bookings/$', views.bookings, name='api-bookings'),
- url(r'^booking/(?P\d+)/$', views.booking, name='api-booking'),
- url(r'^booking/(?P\d+)/cancel/$', views.cancel_booking, name='api-cancel-booking'),
- url(r'^booking/(?P\d+)/accept/$', views.accept_booking, name='api-accept-booking'),
- url(r'^booking/(?P\d+)/anonymize/$', views.anonymize_booking, name='api-anonymize-booking'),
- url(r'^booking/(?P\d+)/suspend/$', views.suspend_booking, name='api-suspend-booking'),
- url(r'^booking/(?P\d+)/resize/$', views.resize_booking, name='api-resize-booking'),
- url(r'^booking/(?P\d+)/ics/$', views.booking_ics, name='api-booking-ics'),
- url(r'^shared-custody/$', views.shared_custody_agendas, name='api-shared-custody-agendas'),
- url(
- r'^shared-custody/(?P\d+)/$',
+ path('bookings/', views.bookings, name='api-bookings'),
+ path('booking//', views.booking, name='api-booking'),
+ path('booking//cancel/', views.cancel_booking, name='api-cancel-booking'),
+ path('booking//accept/', views.accept_booking, name='api-accept-booking'),
+ path('booking//anonymize/', views.anonymize_booking, name='api-anonymize-booking'),
+ path('booking//suspend/', views.suspend_booking, name='api-suspend-booking'),
+ path('booking//resize/', views.resize_booking, name='api-resize-booking'),
+ path('booking//ics/', views.booking_ics, name='api-booking-ics'),
+ path('shared-custody/', views.shared_custody_agendas, name='api-shared-custody-agendas'),
+ path(
+ 'shared-custody//',
views.shared_custody_agenda,
name='api-shared-custody-agenda',
),
- url(
- r'^shared-custody/(?P\d+)/add-child/$',
+ path(
+ 'shared-custody//add-child/',
views.shared_custody_agenda_add_child,
name='api-shared-custody-agenda-add-child',
),
- url(r'^statistics/$', views.statistics_list, name='api-statistics-list'),
- url(r'^statistics/bookings/$', views.bookings_statistics, name='api-statistics-bookings'),
+ path('statistics/', views.statistics_list, name='api-statistics-list'),
+ path('statistics/bookings/', views.bookings_statistics, name='api-statistics-bookings'),
]
diff --git a/chrono/manager/urls.py b/chrono/manager/urls.py
index eb5c3619..cf1b924c 100644
--- a/chrono/manager/urls.py
+++ b/chrono/manager/urls.py
@@ -14,435 +14,435 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-from django.conf.urls import url
+from django.urls import path, re_path
from . import views
urlpatterns = [
- url(r'^$', views.homepage, name='chrono-manager-homepage'),
- url(
- r'^unavailability-calendars/$',
+ path('', views.homepage, name='chrono-manager-homepage'),
+ path(
+ 'unavailability-calendars/',
views.unavailability_calendar_list,
name='chrono-manager-unavailability-calendar-list',
),
- url(
- r'^unavailability-calendar/add/$',
+ path(
+ 'unavailability-calendar/add/',
views.unavailability_calendar_add,
name='chrono-manager-unavailability-calendar-add',
),
- url(
- r'^unavailability-calendar/(?P\d+)/$',
+ path(
+ 'unavailability-calendar//',
views.unavailability_calendar_view,
name='chrono-manager-unavailability-calendar-view',
),
- url(
- r'^unavailability-calendar/(?P\d+)/edit/$',
+ path(
+ 'unavailability-calendar//edit/',
views.unavailability_calendar_edit,
name='chrono-manager-unavailability-calendar-edit',
),
- url(
- r'^unavailability-calendar/(?P\d+)/delete/$',
+ path(
+ 'unavailability-calendar//delete/',
views.unavailability_calendar_delete,
name='chrono-manager-unavailability-calendar-delete',
),
- url(
- r'^unavailability-calendar/(?P\d+)/settings$',
+ path(
+ 'unavailability-calendar//settings',
views.unavailability_calendar_settings,
name='chrono-manager-unavailability-calendar-settings',
),
- url(
- r'^unavailability-calendar/(?P\d+)/export$',
+ path(
+ 'unavailability-calendar//export',
views.unavailability_calendar_export,
name='chrono-manager-unavailability-calendar-export',
),
- url(
- r'^unavailability-calendar/(?P\d+)/add-unavailability$',
+ path(
+ 'unavailability-calendar//add-unavailability',
views.unavailability_calendar_add_unavailability,
name='chrono-manager-unavailability-calendar-add-unavailability',
),
- url(
- r'^unavailability-calendar/(?P\d+)/import-unavailabilities/$',
+ path(
+ 'unavailability-calendar//import-unavailabilities/',
views.unavailability_calendar_import_unavailabilities,
name='chrono-manager-unavailability-calendar-import-unavailabilities',
),
- url(r'^resources/$', views.resource_list, name='chrono-manager-resource-list'),
- url(r'^resource/add/$', views.resource_add, name='chrono-manager-resource-add'),
- url(r'^resource/(?P\d+)/$', views.resource_view, name='chrono-manager-resource-view'),
- url(
+ path('resources/', views.resource_list, name='chrono-manager-resource-list'),
+ path('resource/add/', views.resource_add, name='chrono-manager-resource-add'),
+ path('resource//', views.resource_view, name='chrono-manager-resource-view'),
+ re_path(
r'^resource/(?P\d+)/(?P[0-9]{4})/(?P[0-9]+)/$',
views.resource_monthly_view,
name='chrono-manager-resource-month-view',
),
- url(
+ re_path(
r'^resource/(?P\d+)/(?P[0-9]{4})/(?P[0-9]+)/(?P[0-9]+)/$',
views.resource_day_view,
name='chrono-manager-resource-day-view',
),
- url(r'^resource/(?P\d+)/edit/$', views.resource_edit, name='chrono-manager-resource-edit'),
- url(r'^resource/(?P\d+)/delete/$', views.resource_delete, name='chrono-manager-resource-delete'),
- url(r'^categories/$', views.category_list, name='chrono-manager-category-list'),
- url(r'^category/add/$', views.category_add, name='chrono-manager-category-add'),
- url(r'^category/(?P\d+)/edit/$', views.category_edit, name='chrono-manager-category-edit'),
- url(r'^category/(?P\d+)/delete/$', views.category_delete, name='chrono-manager-category-delete'),
- url(r'^events-types/$', views.events_type_list, name='chrono-manager-events-type-list'),
- url(r'^events-type/add/$', views.events_type_add, name='chrono-manager-events-type-add'),
- url(r'^events-type/(?P\d+)/edit/$', views.events_type_edit, name='chrono-manager-events-type-edit'),
- url(
- r'^events-type/(?P\d+)/delete/$',
+ path('resource//edit/', views.resource_edit, name='chrono-manager-resource-edit'),
+ path('resource//delete/', views.resource_delete, name='chrono-manager-resource-delete'),
+ path('categories/', views.category_list, name='chrono-manager-category-list'),
+ path('category/add/', views.category_add, name='chrono-manager-category-add'),
+ path('category//edit/', views.category_edit, name='chrono-manager-category-edit'),
+ path('category//delete/', views.category_delete, name='chrono-manager-category-delete'),
+ path('events-types/', views.events_type_list, name='chrono-manager-events-type-list'),
+ path('events-type/add/', views.events_type_add, name='chrono-manager-events-type-add'),
+ path('events-type//edit/', views.events_type_edit, name='chrono-manager-events-type-edit'),
+ path(
+ 'events-type//delete/',
views.events_type_delete,
name='chrono-manager-events-type-delete',
),
- url(r'^agendas/add/$', views.agenda_add, name='chrono-manager-agenda-add'),
- url(r'^agendas/import/$', views.agendas_import, name='chrono-manager-agendas-import'),
- url(r'^agendas/export/$', views.agendas_export, name='chrono-manager-agendas-export'),
- url(r'^agendas/(?P\d+)/$', views.agenda_view, name='chrono-manager-agenda-view'),
- url(r'^agendas/(?P[-_a-zA-Z0-9]+)/$', views.agenda_view, name='chrono-manager-agenda-view'),
- url(
- r'^agendas/(?P\d+)/month/$',
+ path('agendas/add/', views.agenda_add, name='chrono-manager-agenda-add'),
+ path('agendas/import/', views.agendas_import, name='chrono-manager-agendas-import'),
+ path('agendas/export/', views.agendas_export, name='chrono-manager-agendas-export'),
+ path('agendas//', views.agenda_view, name='chrono-manager-agenda-view'),
+ re_path(r'^agendas/(?P[-_a-zA-Z0-9]+)/$', views.agenda_view, name='chrono-manager-agenda-view'),
+ path(
+ 'agendas//month/',
views.agenda_month_redirect_view,
name='chrono-manager-agenda-month-redirect-view',
),
- url(
+ re_path(
r'^agendas/(?P\d+)/(?P[0-9]{4})/(?P[0-9]+)/$',
views.agenda_monthly_view,
name='chrono-manager-agenda-month-view',
),
- url(
- r'^agendas/(?P\d+)/day/$',
+ path(
+ 'agendas//day/',
views.agenda_day_redirect_view,
name='chrono-manager-agenda-day-redirect-view',
),
- url(
+ re_path(
r'^agendas/(?P\d+)/(?P[0-9]{4})/(?P[0-9]+)/(?P[0-9]+)/$',
views.agenda_day_view,
name='chrono-manager-agenda-day-view',
),
- url(
- r'^agendas/(?P\d+)/events/open/$',
+ path(
+ 'agendas//events/open/',
views.agenda_open_events_view,
name='chrono-manager-agenda-open-events-view',
),
- url(r'^agendas/(?P\d+)/settings$', views.agenda_settings, name='chrono-manager-agenda-settings'),
- url(
+ path('agendas//settings', views.agenda_settings, name='chrono-manager-agenda-settings'),
+ re_path(
r'^agendas/(?P[-_a-zA-Z0-9]+)/settings/$',
views.agenda_settings_redirect_view,
name='chrono-manager-agenda-settings-redirect',
),
- url(r'^agendas/(?P\d+)/edit$', views.agenda_edit, name='chrono-manager-agenda-edit'),
- url(
- r'^agendas/(?P\d+)/booking-delays$',
+ path('agendas//edit', views.agenda_edit, name='chrono-manager-agenda-edit'),
+ path(
+ 'agendas//booking-delays',
views.agenda_booking_delays,
name='chrono-manager-agenda-booking-delays',
),
- url(r'^agendas/(?P\d+)/roles$', views.agenda_roles, name='chrono-manager-agenda-roles'),
- url(
- r'^agendas/(?P\d+)/display-options$',
+ path('agendas//roles', views.agenda_roles, name='chrono-manager-agenda-roles'),
+ path(
+ 'agendas//display-options',
views.agenda_display_settings,
name='chrono-manager-agenda-display-settings',
),
- url(
- r'^agendas/(?P\d+)/check-options$',
+ path(
+ 'agendas//check-options',
views.agenda_booking_check_settings,
name='chrono-manager-agenda-booking-check-settings',
),
- url(r'^agendas/(?P\d+)/delete$', views.agenda_delete, name='chrono-manager-agenda-delete'),
- url(r'^agendas/(?P\d+)/export$', views.agenda_export, name='chrono-manager-agenda-export'),
- url(r'^agendas/(?P\d+)/add-event$', views.agenda_add_event, name='chrono-manager-agenda-add-event'),
- url(r'^agendas/(?P\d+)/duplicate$', views.agenda_duplicate, name='chrono-manager-agenda-duplicate'),
- url(
- r'^agendas/(?P\d+)/desk-management-toggle$',
+ path('agendas//delete', views.agenda_delete, name='chrono-manager-agenda-delete'),
+ path('agendas//export', views.agenda_export, name='chrono-manager-agenda-export'),
+ path('agendas//add-event', views.agenda_add_event, name='chrono-manager-agenda-add-event'),
+ path('agendas//duplicate', views.agenda_duplicate, name='chrono-manager-agenda-duplicate'),
+ path(
+ 'agendas//desk-management-toggle',
views.agenda_desk_management_toggle_view,
name='chrono-manager-agenda-desk-management-toggle-view',
),
- url(
- r'^agendas/(?P\d+)/import-events$',
+ path(
+ 'agendas//import-events',
views.agenda_import_events,
name='chrono-manager-agenda-import-events',
),
- url(
- r'^agendas/(?P\d+)/export-events$',
+ path(
+ 'agendas//export-events',
views.agenda_export_events,
name='chrono-manager-agenda-export-events',
),
- url(
- r'^agendas/(?P\d+)/notifications$',
+ path(
+ 'agendas//notifications',
views.agenda_notifications_settings,
name='chrono-manager-agenda-notifications-settings',
),
- url(
- r'^agendas/(?P\d+)/reminder$',
+ path(
+ 'agendas//reminder',
views.agenda_reminder_settings,
name='chrono-manager-agenda-reminder-settings',
),
- url(
- r'^agendas/(?P\d+)/reminder/test/$',
+ path(
+ 'agendas//reminder/test/',
views.agenda_reminder_test,
name='chrono-manager-agenda-reminder-test',
),
- url(
+ re_path(
r'^agendas/(?P\d+)/reminder/preview/(?P(email|sms))/$',
views.agenda_reminder_preview,
name='chrono-manager-agenda-reminder-preview',
),
- url(
- r'^agendas/(?P\d+)/events/timesheet$',
+ path(
+ 'agendas//events/timesheet',
views.events_timesheet,
name='chrono-manager-events-timesheet',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/$',
+ path(
+ 'agendas//events//',
views.event_view,
name='chrono-manager-event-view',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/edit$',
+ path(
+ 'agendas//events//edit',
views.event_edit,
name='chrono-manager-event-edit',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/duplicate$',
+ path(
+ 'agendas//events//duplicate',
views.event_duplicate,
name='chrono-manager-event-duplicate',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/delete$',
+ path(
+ 'agendas//events//delete',
views.event_delete,
name='chrono-manager-event-delete',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/cancel$',
+ path(
+ 'agendas//events//cancel',
views.event_cancel,
name='chrono-manager-event-cancel',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/check$',
+ path(
+ 'agendas//events//check',
views.event_check,
name='chrono-manager-event-check',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/presence$',
+ path(
+ 'agendas//events//presence',
views.event_presence,
name='chrono-manager-event-presence',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/absence$',
+ path(
+ 'agendas//events//absence',
views.event_absence,
name='chrono-manager-event-absence',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/checked$',
+ path(
+ 'agendas//events//checked',
views.event_checked,
name='chrono-manager-event-checked',
),
- url(
- r'^agendas/(?P\d+)/events/(?P\d+)/timesheet$',
+ path(
+ 'agendas//events//timesheet',
views.events_timesheet,
name='chrono-manager-event-timesheet',
),
- url(
- r'^agendas/(?P\d+)/event_cancellation_report/(?P\d+)/$',
+ path(
+ 'agendas//event_cancellation_report//',
views.event_cancellation_report,
name='chrono-manager-event-cancellation-report',
),
- url(
- r'^agendas/(?P\d+)/event_cancellation_reports/$',
+ path(
+ 'agendas//event_cancellation_reports/',
views.event_cancellation_report_list,
name='chrono-manager-event-cancellation-report-list',
),
- url(
- r'^agendas/(?P\d+)/add-resource/$',
+ path(
+ 'agendas//add-resource/',
views.agenda_add_resource,
name='chrono-manager-agenda-add-resource',
),
- url(
- r'^agendas/(?P\d+)/resource/(?P\d+)/delete/$',
+ path(
+ 'agendas//resource//delete/',
views.agenda_delete_resource,
name='chrono-manager-agenda-delete-resource',
),
- url(
- r'^agendas/(?P\d+)/add-meeting-type$',
+ path(
+ 'agendas//add-meeting-type',
views.agenda_add_meeting_type,
name='chrono-manager-agenda-add-meeting-type',
),
- url(r'^meetingtypes/(?P\d+)/edit$', views.meeting_type_edit, name='chrono-manager-meeting-type-edit'),
- url(
- r'^meetingtypes/(?P\d+)/delete$',
+ path('meetingtypes//edit', views.meeting_type_edit, name='chrono-manager-meeting-type-edit'),
+ path(
+ 'meetingtypes//delete',
views.meeting_type_delete,
name='chrono-manager-meeting-type-delete',
),
- url(
- r'^agendas/(?P\d+)/desk/(?P\d+)/add-time-period$',
+ path(
+ 'agendas//desk//add-time-period',
views.agenda_add_time_period,
name='chrono-manager-agenda-add-time-period',
),
- url(
- r'^agendas/(?P\d+)/add-time-period$',
+ path(
+ 'agendas//add-time-period',
views.virtual_agenda_add_time_period,
name='chrono-manager-virtual-agenda-add-time-period',
),
- url(r'^timeperiods/(?P\d+)/edit$', views.time_period_edit, name='chrono-manager-time-period-edit'),
- url(
- r'^timeperiods/(?P\d+)/delete$',
+ path('timeperiods//edit', views.time_period_edit, name='chrono-manager-time-period-edit'),
+ path(
+ 'timeperiods//delete',
views.time_period_delete,
name='chrono-manager-time-period-delete',
),
- url(r'^agendas/(?P\d+)/add-desk$', views.agenda_add_desk, name='chrono-manager-agenda-add-desk'),
- url(r'^desks/(?P\d+)/edit$', views.desk_edit, name='chrono-manager-desk-edit'),
- url(r'^desks/(?P\d+)/delete$', views.desk_delete, name='chrono-manager-desk-delete'),
- url(
- r'^desk/(?P\d+)/unavailability-calendar/(?P\d+)/toggle/$',
+ path('agendas//add-desk', views.agenda_add_desk, name='chrono-manager-agenda-add-desk'),
+ path('desks//edit', views.desk_edit, name='chrono-manager-desk-edit'),
+ path('desks//delete', views.desk_delete, name='chrono-manager-desk-delete'),
+ path(
+ 'desk//unavailability-calendar//toggle/',
views.unavailability_calendar_toggle_view,
name='chrono-manager-unavailability-calendar-toggle-view',
),
- url(
- r'^agendas/(?P\d+)/desk/(?P\d+)/add-time-period-exception$',
+ path(
+ 'agendas//desk//add-time-period-exception',
views.agenda_add_time_period_exception,
name='chrono-manager-agenda-add-time-period-exception',
),
- url(
- r'^agendas/desk/(?P\d+)/import-exceptions-from-ics/$',
+ path(
+ 'agendas/desk//import-exceptions-from-ics/',
views.desk_import_time_period_exceptions,
name='chrono-manager-desk-add-import-time-period-exceptions',
),
- url(
- r'^agendas/(?P\d+)/add-virtual-member$',
+ path(
+ 'agendas//add-virtual-member',
views.agenda_add_virtual_member,
name='chrono-manager-agenda-add-virtual-member',
),
- url(
- r'^virtual-members/(?P\d+)/delete$',
+ path(
+ 'virtual-members//delete',
views.virtual_member_delete,
name='chrono-manager-virtual-member-delete',
),
- url(
- r'^time-period-exceptions/(?P\d+)/edit$',
+ path(
+ 'time-period-exceptions//edit',
views.time_period_exception_edit,
name='chrono-manager-time-period-exception-edit',
),
- url(
- r'^time-period-exceptions/(?P\d+)/delete$',
+ path(
+ 'time-period-exceptions//delete',
views.time_period_exception_delete,
name='chrono-manager-time-period-exception-delete',
),
- url(
- r'^time-period-exceptions/(?P\d+)/exception-extract-list$',
+ path(
+ 'time-period-exceptions//exception-extract-list',
views.time_period_exception_extract_list,
name='chrono-manager-time-period-exception-extract-list',
),
- url(
- r'^time-period-exceptions/(?P\d+)/exception-list$',
+ path(
+ 'time-period-exceptions//exception-list',
views.time_period_exception_list,
name='chrono-manager-time-period-exception-list',
),
- url(
- r'^time-period-exceptions-source/(?P\d+)/delete$',
+ path(
+ 'time-period-exceptions-source//delete',
views.time_period_exception_source_delete,
name='chrono-manager-time-period-exception-source-delete',
),
- url(
- r'^time-period-exceptions-source/(?P\d+)/refresh$',
+ path(
+ 'time-period-exceptions-source//refresh',
views.time_period_exception_source_refresh,
name='chrono-manager-time-period-exception-source-refresh',
),
- url(
- r'^time-period-exceptions-source/(?P\d+)/toggle$',
+ path(
+ 'time-period-exceptions-source//toggle',
views.time_period_exception_source_toggle,
name='chrono-manager-time-period-exception-source-toggle',
),
- url(
- r'^time-period-exceptions-source/(?P\d+)/replace$',
+ path(
+ 'time-period-exceptions-source//replace',
views.time_period_exception_source_replace,
name='chrono-manager-time-period-exception-source-replace',
),
- url(
- r'^agendas/(?P\d+)/bookings/(?P\d+)/cancel$',
+ path(
+ 'agendas//bookings//cancel',
views.booking_cancel,
name='chrono-manager-booking-cancel',
),
- url(
- r'^agendas/(?P\d+)/bookings/(?P\d+)/presence$',
+ path(
+ 'agendas//bookings//presence',
views.booking_presence,
name='chrono-manager-booking-presence',
),
- url(
- r'^agendas/(?P\d+)/bookings/(?P\d+)/absence$',
+ path(
+ 'agendas//bookings//absence',
views.booking_absence,
name='chrono-manager-booking-absence',
),
- url(
+ re_path(
r'^agendas/events.csv$',
views.agenda_import_events_sample_csv,
name='chrono-manager-sample-events-csv',
),
- url(
- r'^shared-custody/settings/$',
+ path(
+ 'shared-custody/settings/',
views.shared_custody_settings,
name='chrono-manager-shared-custody-settings',
),
- url(
- r'^shared-custody/(?P