484 lines
18 KiB
Python
484 lines
18 KiB
Python
# chrono - agendas system
|
|
# Copyright (C) 2016 Entr'ouvert
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify it
|
|
# under the terms of the GNU Affero General Public License as published
|
|
# by the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
from django.urls import path, re_path
|
|
|
|
from . import views
|
|
|
|
urlpatterns = [
|
|
path('', views.homepage, name='chrono-manager-homepage'),
|
|
path(
|
|
'unavailability-calendars/',
|
|
views.unavailability_calendar_list,
|
|
name='chrono-manager-unavailability-calendar-list',
|
|
),
|
|
path(
|
|
'unavailability-calendar/add/',
|
|
views.unavailability_calendar_add,
|
|
name='chrono-manager-unavailability-calendar-add',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/',
|
|
views.unavailability_calendar_view,
|
|
name='chrono-manager-unavailability-calendar-view',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/edit/',
|
|
views.unavailability_calendar_edit,
|
|
name='chrono-manager-unavailability-calendar-edit',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/delete/',
|
|
views.unavailability_calendar_delete,
|
|
name='chrono-manager-unavailability-calendar-delete',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/settings',
|
|
views.unavailability_calendar_settings,
|
|
name='chrono-manager-unavailability-calendar-settings',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/export',
|
|
views.unavailability_calendar_export,
|
|
name='chrono-manager-unavailability-calendar-export',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/add-unavailability',
|
|
views.unavailability_calendar_add_unavailability,
|
|
name='chrono-manager-unavailability-calendar-add-unavailability',
|
|
),
|
|
path(
|
|
'unavailability-calendar/<int:pk>/import-unavailabilities/',
|
|
views.unavailability_calendar_import_unavailabilities,
|
|
name='chrono-manager-unavailability-calendar-import-unavailabilities',
|
|
),
|
|
path('resources/', views.resource_list, name='chrono-manager-resource-list'),
|
|
path('resource/add/', views.resource_add, name='chrono-manager-resource-add'),
|
|
path('resource/<int:pk>/', views.resource_view, name='chrono-manager-resource-view'),
|
|
re_path(
|
|
r'^resource/(?P<pk>\d+)/month/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$',
|
|
views.resource_monthly_view,
|
|
name='chrono-manager-resource-month-view',
|
|
),
|
|
re_path(
|
|
r'^resource/(?P<pk>\d+)/week/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$',
|
|
views.resource_weekly_view,
|
|
name='chrono-manager-resource-week-view',
|
|
),
|
|
re_path(
|
|
r'^resource/(?P<pk>\d+)/day/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$',
|
|
views.resource_day_view,
|
|
name='chrono-manager-resource-day-view',
|
|
),
|
|
re_path(
|
|
r'^resource/(?P<pk>\d+)/(?P<year>[0-9]{4})/',
|
|
views.resource_redirect_view,
|
|
name='chrono-manager-resource-redirect-view',
|
|
),
|
|
path('resource/<int:pk>/edit/', views.resource_edit, name='chrono-manager-resource-edit'),
|
|
path('resource/<int:pk>/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/<int:pk>/edit/', views.category_edit, name='chrono-manager-category-edit'),
|
|
path('category/<int:pk>/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/<int:pk>/edit/', views.events_type_edit, name='chrono-manager-events-type-edit'),
|
|
path(
|
|
'events-type/<int:pk>/delete/',
|
|
views.events_type_delete,
|
|
name='chrono-manager-events-type-delete',
|
|
),
|
|
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/<int:pk>/', views.agenda_view, name='chrono-manager-agenda-view'),
|
|
re_path(r'^agendas/(?P<slug>[-_a-zA-Z0-9]+)/$', views.agenda_view, name='chrono-manager-agenda-view'),
|
|
path(
|
|
'agendas/<int:pk>/month/',
|
|
views.agenda_month_redirect_view,
|
|
name='chrono-manager-agenda-month-redirect-view',
|
|
),
|
|
re_path(
|
|
r'^agendas/(?P<pk>\d+)/month/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$',
|
|
views.agenda_monthly_view,
|
|
name='chrono-manager-agenda-month-view',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/week/',
|
|
views.agenda_week_redirect_view,
|
|
name='chrono-manager-agenda-week-redirect-view',
|
|
),
|
|
re_path(
|
|
r'^agendas/(?P<pk>\d+)/week/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$',
|
|
views.agenda_weekly_view,
|
|
name='chrono-manager-agenda-week-view',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/day/',
|
|
views.agenda_day_redirect_view,
|
|
name='chrono-manager-agenda-day-redirect-view',
|
|
),
|
|
re_path(
|
|
r'^agendas/(?P<pk>\d+)/day/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/(?P<day>[0-9]+)/$',
|
|
views.agenda_day_view,
|
|
name='chrono-manager-agenda-day-view',
|
|
),
|
|
re_path(
|
|
r'^agendas/(?P<pk>\d+)/(?P<year>[0-9]{4})/',
|
|
views.agenda_redirect_view,
|
|
name='chrono-manager-agenda-redirect-view',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/open/',
|
|
views.agenda_open_events_view,
|
|
name='chrono-manager-agenda-open-events-view',
|
|
),
|
|
path('agendas/<int:pk>/settings', views.agenda_settings, name='chrono-manager-agenda-settings'),
|
|
re_path(
|
|
r'^agendas/(?P<slug>[-_a-zA-Z0-9]+)/settings/$',
|
|
views.agenda_settings_redirect_view,
|
|
name='chrono-manager-agenda-settings-redirect',
|
|
),
|
|
path('agendas/<int:pk>/edit', views.agenda_edit, name='chrono-manager-agenda-edit'),
|
|
path(
|
|
'agendas/<int:pk>/booking-delays',
|
|
views.agenda_booking_delays,
|
|
name='chrono-manager-agenda-booking-delays',
|
|
),
|
|
path('agendas/<int:pk>/roles', views.agenda_roles, name='chrono-manager-agenda-roles'),
|
|
path(
|
|
'agendas/<int:pk>/display-options',
|
|
views.agenda_display_settings,
|
|
name='chrono-manager-agenda-display-settings',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/check-options',
|
|
views.agenda_booking_check_settings,
|
|
name='chrono-manager-agenda-booking-check-settings',
|
|
),
|
|
path('agendas/<int:pk>/delete', views.agenda_delete, name='chrono-manager-agenda-delete'),
|
|
path('agendas/<int:pk>/export', views.agenda_export, name='chrono-manager-agenda-export'),
|
|
path('agendas/<int:pk>/add-event', views.agenda_add_event, name='chrono-manager-agenda-add-event'),
|
|
path('agendas/<int:pk>/duplicate', views.agenda_duplicate, name='chrono-manager-agenda-duplicate'),
|
|
path(
|
|
'agendas/<int:pk>/desk-management-toggle',
|
|
views.agenda_desk_management_toggle_view,
|
|
name='chrono-manager-agenda-desk-management-toggle-view',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/import-events',
|
|
views.agenda_import_events,
|
|
name='chrono-manager-agenda-import-events',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/export-events',
|
|
views.agenda_export_events,
|
|
name='chrono-manager-agenda-export-events',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/notifications',
|
|
views.agenda_notifications_settings,
|
|
name='chrono-manager-agenda-notifications-settings',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/reminder',
|
|
views.agenda_reminder_settings,
|
|
name='chrono-manager-agenda-reminder-settings',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/reminder/test/',
|
|
views.agenda_reminder_test,
|
|
name='chrono-manager-agenda-reminder-test',
|
|
),
|
|
re_path(
|
|
r'^agendas/(?P<pk>\d+)/reminder/preview/(?P<type>(email|sms))/$',
|
|
views.agenda_reminder_preview,
|
|
name='chrono-manager-agenda-reminder-preview',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/timesheet',
|
|
views.events_timesheet,
|
|
name='chrono-manager-events-timesheet',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/',
|
|
views.event_view,
|
|
name='chrono-manager-event-view',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/edit',
|
|
views.event_edit,
|
|
name='chrono-manager-event-edit',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/duplicate',
|
|
views.event_duplicate,
|
|
name='chrono-manager-event-duplicate',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/delete',
|
|
views.event_delete,
|
|
name='chrono-manager-event-delete',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/cancel',
|
|
views.event_cancel,
|
|
name='chrono-manager-event-cancel',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/check',
|
|
views.event_check,
|
|
name='chrono-manager-event-check',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/presence',
|
|
views.event_presence,
|
|
name='chrono-manager-event-presence',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/absence',
|
|
views.event_absence,
|
|
name='chrono-manager-event-absence',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/checked',
|
|
views.event_checked,
|
|
name='chrono-manager-event-checked',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/events/<int:event_pk>/timesheet',
|
|
views.events_timesheet,
|
|
name='chrono-manager-event-timesheet',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/event_cancellation_report/<int:report_pk>/',
|
|
views.event_cancellation_report,
|
|
name='chrono-manager-event-cancellation-report',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/event_cancellation_reports/',
|
|
views.event_cancellation_report_list,
|
|
name='chrono-manager-event-cancellation-report-list',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/add-resource/',
|
|
views.agenda_add_resource,
|
|
name='chrono-manager-agenda-add-resource',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/resource/<int:resource_pk>/delete/',
|
|
views.agenda_delete_resource,
|
|
name='chrono-manager-agenda-delete-resource',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/add-meeting-type',
|
|
views.agenda_add_meeting_type,
|
|
name='chrono-manager-agenda-add-meeting-type',
|
|
),
|
|
path('meetingtypes/<int:pk>/edit', views.meeting_type_edit, name='chrono-manager-meeting-type-edit'),
|
|
path(
|
|
'meetingtypes/<int:pk>/delete',
|
|
views.meeting_type_delete,
|
|
name='chrono-manager-meeting-type-delete',
|
|
),
|
|
path(
|
|
'agendas/<int:agenda_pk>/desk/<int:pk>/add-time-period',
|
|
views.agenda_add_time_period,
|
|
name='chrono-manager-agenda-add-time-period',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/add-time-period',
|
|
views.virtual_agenda_add_time_period,
|
|
name='chrono-manager-virtual-agenda-add-time-period',
|
|
),
|
|
path('timeperiods/<int:pk>/edit', views.time_period_edit, name='chrono-manager-time-period-edit'),
|
|
path(
|
|
'timeperiods/<int:pk>/delete',
|
|
views.time_period_delete,
|
|
name='chrono-manager-time-period-delete',
|
|
),
|
|
path(
|
|
'agendas/<int:agenda_pk>/desk/<int:pk>/add-date-time-period',
|
|
views.agenda_add_date_time_period,
|
|
name='chrono-manager-agenda-add-date-time-period',
|
|
),
|
|
path(
|
|
'timeperiods/desk/<int:pk>/date-time-period-list',
|
|
views.agenda_date_time_period_list,
|
|
name='chrono-manager-date-time-period-list',
|
|
),
|
|
path('agendas/<int:pk>/add-desk', views.agenda_add_desk, name='chrono-manager-agenda-add-desk'),
|
|
path('desks/<int:pk>/edit', views.desk_edit, name='chrono-manager-desk-edit'),
|
|
path('desks/<int:pk>/delete', views.desk_delete, name='chrono-manager-desk-delete'),
|
|
path(
|
|
'desk/<int:pk>/unavailability-calendar/<int:unavailability_calendar_pk>/toggle/',
|
|
views.unavailability_calendar_toggle_view,
|
|
name='chrono-manager-unavailability-calendar-toggle-view',
|
|
),
|
|
path(
|
|
'agendas/<int:agenda_pk>/desk/<int:pk>/add-time-period-exception',
|
|
views.agenda_add_time_period_exception,
|
|
name='chrono-manager-agenda-add-time-period-exception',
|
|
),
|
|
path(
|
|
'agendas/desk/<int:pk>/import-exceptions-from-ics/',
|
|
views.desk_import_time_period_exceptions,
|
|
name='chrono-manager-desk-add-import-time-period-exceptions',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/add-virtual-member',
|
|
views.agenda_add_virtual_member,
|
|
name='chrono-manager-agenda-add-virtual-member',
|
|
),
|
|
path(
|
|
'virtual-members/<int:pk>/delete',
|
|
views.virtual_member_delete,
|
|
name='chrono-manager-virtual-member-delete',
|
|
),
|
|
path(
|
|
'time-period-exceptions/<int:pk>/edit',
|
|
views.time_period_exception_edit,
|
|
name='chrono-manager-time-period-exception-edit',
|
|
),
|
|
path(
|
|
'time-period-exceptions/<int:pk>/delete',
|
|
views.time_period_exception_delete,
|
|
name='chrono-manager-time-period-exception-delete',
|
|
),
|
|
path(
|
|
'time-period-exceptions/<int:pk>/exception-extract-list',
|
|
views.time_period_exception_extract_list,
|
|
name='chrono-manager-time-period-exception-extract-list',
|
|
),
|
|
path(
|
|
'time-period-exceptions/<int:pk>/exception-list',
|
|
views.time_period_exception_list,
|
|
name='chrono-manager-time-period-exception-list',
|
|
),
|
|
path(
|
|
'time-period-exceptions-source/<int:pk>/delete',
|
|
views.time_period_exception_source_delete,
|
|
name='chrono-manager-time-period-exception-source-delete',
|
|
),
|
|
path(
|
|
'time-period-exceptions-source/<int:pk>/refresh',
|
|
views.time_period_exception_source_refresh,
|
|
name='chrono-manager-time-period-exception-source-refresh',
|
|
),
|
|
path(
|
|
'time-period-exceptions-source/<int:pk>/toggle',
|
|
views.time_period_exception_source_toggle,
|
|
name='chrono-manager-time-period-exception-source-toggle',
|
|
),
|
|
path(
|
|
'time-period-exceptions-source/<int:pk>/replace',
|
|
views.time_period_exception_source_replace,
|
|
name='chrono-manager-time-period-exception-source-replace',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/bookings/<int:booking_pk>/cancel',
|
|
views.booking_cancel,
|
|
name='chrono-manager-booking-cancel',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/bookings/<int:booking_pk>/presence',
|
|
views.booking_presence,
|
|
name='chrono-manager-booking-presence',
|
|
),
|
|
path(
|
|
'agendas/<int:pk>/bookings/<int:booking_pk>/absence',
|
|
views.booking_absence,
|
|
name='chrono-manager-booking-absence',
|
|
),
|
|
re_path(
|
|
r'^agendas/events.csv$',
|
|
views.agenda_import_events_sample_csv,
|
|
name='chrono-manager-sample-events-csv',
|
|
),
|
|
path(
|
|
'shared-custody/settings/',
|
|
views.shared_custody_settings,
|
|
name='chrono-manager-shared-custody-settings',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/',
|
|
views.shared_custody_agenda_view,
|
|
name='chrono-manager-shared-custody-agenda-view',
|
|
),
|
|
re_path(
|
|
r'^shared-custody/(?P<pk>\d+)/(?P<year>[0-9]{4})/(?P<month>[0-9]+)/$',
|
|
views.shared_custody_agenda_monthly_view,
|
|
name='chrono-manager-shared-custody-agenda-month-view',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/settings/',
|
|
views.shared_custody_agenda_settings,
|
|
name='chrono-manager-shared-custody-agenda-settings',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/delete',
|
|
views.shared_custody_agenda_delete,
|
|
name='chrono-manager-shared-custody-agenda-delete',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/add-rule',
|
|
views.shared_custody_agenda_add_rule,
|
|
name='chrono-manager-shared-custody-agenda-add-rule',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/rules/<int:rule_pk>/edit',
|
|
views.shared_custody_agenda_edit_rule,
|
|
name='chrono-manager-shared-custody-agenda-edit-rule',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/rules/<int:rule_pk>/delete',
|
|
views.shared_custody_agenda_delete_rule,
|
|
name='chrono-manager-shared-custody-agenda-delete-rule',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/add-holiday-rule',
|
|
views.shared_custody_agenda_add_holiday_rule,
|
|
name='chrono-manager-shared-custody-agenda-add-holiday-rule',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/holiday-rules/<int:rule_pk>/edit',
|
|
views.shared_custody_agenda_edit_holiday_rule,
|
|
name='chrono-manager-shared-custody-agenda-edit-holiday-rule',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/holiday-rules/<int:rule_pk>/delete',
|
|
views.shared_custody_agenda_delete_holiday_rule,
|
|
name='chrono-manager-shared-custody-agenda-delete-holiday-rule',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/add-period',
|
|
views.shared_custody_agenda_add_period,
|
|
name='chrono-manager-shared-custody-agenda-add-period',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/periods/<int:period_pk>/edit',
|
|
views.shared_custody_agenda_edit_period,
|
|
name='chrono-manager-shared-custody-agenda-edit-period',
|
|
),
|
|
path(
|
|
'shared-custody/<int:pk>/periods/<int:period_pk>/delete',
|
|
views.shared_custody_agenda_delete_period,
|
|
name='chrono-manager-shared-custody-agenda-delete-period',
|
|
),
|
|
re_path(r'^menu.json$', views.menu_json),
|
|
]
|