loko/loko/interventions/urls.py

120 lines
No EOL
13 KiB
Python

from django.urls import path
from . import views
app_name = "interventions"
urlpatterns = [
path("", views.index, name="interventions_index"),
path("mobile/", views.interventions_index_mobile, name='interventions_index_mobile'),
path("mobile/add-repair/", views.add_repair_intervention_mobile, name='add_repair_intervention_mobile'),
path("mobile/add/", views.choose_maintain_type_for_intervention_mobile, name='choose_maintain_type_for_intervention_mobile'),
path("mobile/add/thematic/", views.choose_thematic_for_intervention_mobile, name='choose_thematic_for_intervention_mobile'),
path("mobile/add/<str:thematic_code>/", views.add_intervention_mobile, name='add_intervention_mobile'),
path("modal/add-repair/", views.add_repair_intervention_modal, name='add_repair_intervention_modal'),
path('geojson/', views.interventions_geojson, name='interventions_geojson'),
path('search/', views.interventions_search, name='interventions_search'),
path('export/', views.export_interventions, name='export_interventions'),
path('available-orders/', views.available_orders, name='available_orders'),
path('bulk-associate-order/', views.bulk_associate_order, name='bulk_associate_order'),
path('<int:intervention_id>/', views.intervention_detail, name='intervention_detail'),
path('<int:intervention_id>/mobile/', views.intervention_detail_mobile, name='intervention_detail_mobile'),
path('operations/<int:operation_id>/comment/', views.update_operation_comment, name='operation_update_comment'),
path('<int:intervention_id>/update-status/', views.update_intervention_status, name='update_intervention_status'),
path('<int:intervention_id>/toggle-subscription/', views.toggle_intervention_subscription, name='toggle_intervention_subscription'),
path('<int:intervention_id>/toggle-checked/', views.toggle_intervention_checked, name='toggle_intervention_checked'),
path('<int:intervention_id>/toggle-follow-up-performed/', views.toggle_follow_up_performed, name='toggle_follow_up_performed'),
path('<int:intervention_id>/update-correction-reason/', views.update_correction_reason, name='update_correction_reason'),
path('<int:intervention_id>/update-correction-details/', views.update_correction_details, name='update_correction_details'),
path('<int:intervention_id>/add-note/', views.intervention_add_note, name='intervention_add_note'),
path('<int:intervention_id>/notes/<int:note_id>/update/', views.intervention_update_note, name='intervention_update_note'),
path('<int:intervention_id>/notes/<int:note_id>/delete/', views.intervention_delete_note, name='intervention_delete_note'),
path('<int:intervention_id>/create-repair/', views.create_repair_intervention, name='create_repair_intervention'),
path('<int:intervention_id>/duplicate/', views.duplicate_intervention, name='duplicate_intervention'),
path('<int:intervention_id>/link-existing/', views.link_existing_interventions, name='link_existing_interventions'),
path('<int:intervention_id>/occupations/add/', views.intervention_add_occupation, name='intervention_add_occupation'),
path('<int:intervention_id>/occupations/<int:occupation_id>/update/', views.intervention_update_occupation, name='intervention_update_occupation'),
path('<int:intervention_id>/add-document/', views.intervention_add_document, name='intervention_add_document'),
path('<int:intervention_id>/documents/<int:document_id>/delete/', views.intervention_delete_document, name='intervention_delete_document'),
path('<int:intervention_id>/documents/<int:document_id>/copy/', views.intervention_copy_document, name='intervention_copy_document'),
path('<int:intervention_id>/document-copy-tags/', views.intervention_get_copy_target_tags, name='intervention_get_copy_target_tags'),
path('<int:intervention_id>/summary-modal/', views.intervention_summary_modal, name='intervention_summary_modal'),
# API mobile pour upload/suppression de photos (Canvas)
path('<int:intervention_id>/mobile/photos/upload/', views.mobile_upload_photo_api, name='mobile_upload_photo_api'),
path('<int:intervention_id>/mobile/photos/<int:document_id>/delete/', views.mobile_delete_photo_api, name='mobile_delete_photo_api'),
path('<int:intervention_id>/mobile/assets/filters/', views.mobile_intervention_assets_filters, name='mobile_intervention_assets_filters'),
path('<int:intervention_id>/mobile/assets/search/', views.mobile_intervention_assets_search, name='mobile_intervention_assets_search'),
path('<int:intervention_id>/mobile/assets/locations/', views.mobile_intervention_assets_locations, name='mobile_intervention_assets_locations'),
path('<int:intervention_id>/mobile/assets/sync/', views.mobile_intervention_assets_sync, name='mobile_intervention_assets_sync'),
path('<int:intervention_id>/link-assets/', views.intervention_link_assets, name='intervention_link_assets'),
path('<int:intervention_id>/link-order/', views.intervention_link_order, name='intervention_link_order'),
path('<int:intervention_id>/apply-quote/', views.intervention_apply_quote, name='intervention_apply_quote'),
path('<int:intervention_id>/send-reminder/', views.send_intervention_reminder, name='send_intervention_reminder'),
path('<int:intervention_id>/send-modification/', views.send_intervention_modification, name='send_intervention_modification'),
path('<int:intervention_id>/update-contract-post/', views.update_contract_post, name='update_contract_post'),
path('<int:intervention_id>/update-contract-post-status/', views.update_contract_post_status, name='update_contract_post_status'),
path('<int:intervention_id>/posts/bulk-update/', views.intervention_posts_bulk_update, name='intervention_posts_bulk_update'),
path('<int:intervention_id>/posts/period-quantities/', views.intervention_posts_period_quantities, name='intervention_posts_period_quantities'),
path('<int:intervention_id>/update/', views.update_intervention, name='update_intervention'),
path('<int:intervention_id>/location/add/', views.add_intervention_location, name='add_intervention_location'),
path('<int:intervention_id>/location/<int:loc_id>/remove/', views.remove_intervention_location, name='remove_intervention_location'),
# Period validation endpoints
path('<int:intervention_id>/period-validation/toggle/', views.toggle_period_validation, name='toggle_period_validation'),
path('<int:intervention_id>/period-validation/last-flag/', views.set_last_period_flag, name='set_last_period_flag'),
path('<int:intervention_id>/confirm-call/', views.confirm_call, name='confirm_call'),
path("<int:intervention_id>/preview-sheet/", views.preview_intervention_pdf, name="intervention_pdf_preview"),
path("<int:intervention_id>/report/", views.download_intervention_report_pdf, name="intervention_report_download"),
path("<int:intervention_id>/report/preview/", views.preview_intervention_report_pdf, name="intervention_report_preview"),
path('bulk-change-status/', views.update_multiple_intervention_statuses, name='interventions_bulk_change_status'),
path('export-sheets-zip/', views.export_intervention_sheets_zip, name='export_intervention_sheets_zip'),
path('execution-report/', views.bulk_execution_report_pdf, name='bulk_execution_report_pdf'),
path('execution-report/start/', views.start_bulk_execution_report, name='start_bulk_execution_report'),
path('execution-report/progress/<str:token>/', views.poll_bulk_execution_report, name='poll_bulk_execution_report'),
path('execution-report/download/<str:token>/', views.download_bulk_execution_report, name='download_bulk_execution_report'),
path('provider-contracts/', views.get_contracts_by_provider, name='get_contracts_by_provider'),
path('events/', views.interventions_events, name='interventions_events'),
path('schedule/update/', views.interventions_schedule_update, name='interventions_schedule_update'),
path('calendar/', views.interventions_calendar, name='interventions_calendar'),
path('calendar/member/<int:member_id>/history/', views.member_history_ajax, name='member_history_ajax'),
path('add/choose-thematic/', views.choose_thematic_before_add, name='intervention_add_choose_thematic'),
path('<str:thematic_code>/add/', views.interventions_add, name='intervention_add'),
path('<str:thematic_code>/add-mobile/', views.interventions_add, name='intervention_add_mobile_form'),
path('inspection-configurations/<int:config_id>/geojson/', views.inspection_configuration_geojson, name='inspection_configuration_geojson'),
path('<str:thematic_code>/add-preventive/', views.intervention_add_preventive, name='intervention_add_preventive'),
path('<str:thematic_code>/add-preventive-draft/', views.preventive_intervention_draft, name='intervention_preventive_draft'),
path('<str:thematic_code>/preventive-link-elements/', views.preventive_link_assets, name='intervention_preventive_link_elements'),
path('<str:thematic_code>/preventive-remove-element/', views.preventive_remove_element, name='intervention_preventive_remove_element'),
path('linked/summary/', views.linked_interventions_summary, name='linked_interventions_summary'),
path('linked/list/', views.linked_interventions_list, name='linked_interventions_list'),
path('linked/geojson/', views.linked_interventions_geojson, name='linked_interventions_geojson'),
path('check-assets-locations-status/', views.check_assets_locations_status, name='check_assets_locations_status'),
path('<int:intervention_id>/add-custom-operation/', views.add_custom_operation, name='add_custom_operation'),
path('<int:intervention_id>/save-operations/', views.save_operations_ajax, name='save_operations_ajax'),
path('<int:intervention_id>/save-guided-operation/', views.save_guided_operation_ajax, name='save_guided_operation_ajax'),
path('<int:intervention_id>/guided-operation/giep-assets/autocomplete/', views.autocomplete_giep_assets_ajax, name='autocomplete_giep_assets'),
path('<int:intervention_id>/guided-operation/giep-assets/nearby/', views.nearby_giep_assets_ajax, name='nearby_giep_assets'),
path('<int:intervention_id>/guided-operation/giep-assets/geojson/', views.nearby_giep_assets_geojson_ajax, name='nearby_giep_assets_geojson'),
path('<int:intervention_id>/guided-operation/upload-media/', views.upload_guided_operation_media, name='upload_guided_operation_media'),
path('guided-operation/media/<int:media_id>/delete/', views.delete_guided_operation_media, name='delete_guided_operation_media'),
path('<int:intervention_id>/save-mobile/', views.save_intervention_mobile_ajax, name='save_intervention_mobile_ajax'),
path('operations/<int:operation_id>/add-photo/', views.add_operation_photo, name='add_operation_photo'),
path('operations/photos/<int:photo_id>/delete/', views.delete_operation_photo, name='delete_operation_photo'),
# Transfer intervention API
path('<int:intervention_id>/mobile/transfer/members/', views.get_transferable_members, name='get_transferable_members'),
path('<int:intervention_id>/mobile/transfer/', views.transfer_intervention, name='transfer_intervention'),
# Admin AJAX endpoints
path('ajax/get-categories-by-thematic/', views.ajax_get_categories_by_thematic, name='ajax_get_categories_by_thematic'),
path('ajax/get-teams-by-thematic/', views.ajax_get_teams_by_thematic, name='ajax_get_teams_by_thematic'),
path('ajax/get-subcategories/', views.ajax_get_subcategories, name='ajax_get_subcategories'),
path('ajax/get-asset-models/', views.ajax_get_asset_models, name='ajax_get_asset_models'),
path('ajax/get-replacement-models-by-category/', views.ajax_get_replacement_models_by_category, name='ajax_get_replacement_models_by_category'),
path('ajax/get-posts-by-contract/', views.ajax_get_posts_by_contract, name='ajax_get_posts_by_contract'),
path('ajax/get-contracts-by-thematic/', views.ajax_get_contracts_by_thematic, name='ajax_get_contracts_by_thematic'),
# Template check for assets without matching templates
path('<int:intervention_id>/check-asset-templates/', views.check_asset_templates_for_intervention, name='check_asset_templates'),
path('<int:intervention_id>/create-operations-from-template/', views.create_operations_from_selected_template, name='create_operations_from_template'),
path('<int:intervention_id>/get-newly-linked-assets/', views.get_newly_linked_assets_for_templates, name='get_newly_linked_assets'),
path('<int:intervention_id>/create-operations-for-linked-assets/', views.create_operations_for_linked_assets, name='create_operations_for_linked_assets'),
# Discussion / Messages
path('<int:intervention_id>/message/', views.intervention_add_message, name='intervention_add_message'),
path('<int:intervention_id>/planning-data/', views.intervention_planning_data_ajax, name='intervention_planning_data'),
]