#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (C) 2010-2025 Étienne Loks # 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 . # See the file COPYING for details. from django.urls import path, re_path, register_converter from ishtar_common import urls_converters from ishtar_common.views import QALinkView from ishtar_common.utils import check_permissions from archaeological_operations import views from archaeological_operations import views_api from archaeological_operations import models register_converter(urls_converters.UnderscoreSlug, "uslug") # be carreful: each check_permissions must be relevant with ishtar_menu # forms urlpatterns = [ re_path( r"operation_administrativeactop_search/(?P.+)?$", check_permissions([ "archaeological_operations.view_administrativeact", "archaeological_operations.view_own_administrativeact"])( views.operation_administrativeactop_search_wizard ), name="operation_administrativeactop_search", ), re_path( r"operation_administrativeactop/(?P.+)?$", check_permissions(["archaeological_operations.add_administrativeact"])( views.operation_administrativeactop_wizard ), name="operation_administrativeactop", ), re_path( r"operation_administrativeactop_modification/(?P.+)?$", check_permissions([ "archaeological_operations.change_administrativeact", "archaeological_operations.change_own_administrativeact"])( views.operation_administrativeactop_modification_wizard ), name="operation_administrativeactop_modification", ), re_path( r"operation_administrativeactop_modify/(?P.+)/$", views.operation_administrativeactop_modify, name="operation_administrativeactop_modify", ), re_path( r"operation_administrativeactop_deletion/(?P.+)?$", check_permissions([ "archaeological_operations.delete_administrativeact", "archaeological_operations.delete_own_administrativeact"])( views.operation_administrativeactop_deletion_wizard ), name="operation_administrativeactop_deletion", ), re_path( r"operation_administrativeactop_delete/(?P.+)/$", views.operation_administrativeactop_delete, name="delete-administrativeact-operation", ), re_path( r"operation_search/(?P.+)?$", check_permissions( ["archaeological_operations.view_operation", "archaeological_operations.view_own_operation"] )(views.operation_search_wizard), name="operation_search", ), re_path( r"^operation-add-adminact/(?P[0-9-]+)/$", check_permissions( ["archaeological_operations.add_administrativeact"] )(views.operation_adminact_add), name="operation-add-adminact", ), re_path( r"operation_creation/(?P.+)?$", check_permissions( ["archaeological_operations.add_operation"] )(views.operation_creation_wizard), name="operation_creation", ), re_path(r"operation_add/(?P\d+)$", views.operation_add, name="operation_add"), re_path( r"operation_modification/(?P.+)?$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.operation_modification_wizard), name="operation_modification", ), re_path( r"operation_modify/(?P.+)/$", views.operation_modify, name="operation_modify", ), re_path( r"operation_closing/(?P.+)?$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.operation_closing_wizard), name="operation_closing", ), re_path( r"operation_deletion/(?P.+)?$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.operation_deletion_wizard), name="operation_deletion", ), re_path( r"operation_delete/(?P.+)/$", views.operation_delete, name="delete-operation", ), re_path( r"administrativact_register/(?P.+)?$", check_permissions( ["archaeological_operations.view_administrativeact", "archaeological_operations.view_own_administrativeact"] )(views.administrativact_register_wizard), name="administrativact_register", ), re_path( r"autocomplete-operation/$", views.autocomplete_operation, name="autocomplete-operation", ), re_path( r"get-operation/own/(?P.+)?$", views.get_operation, name="get-own-operation", kwargs={"force_own": True}, ), re_path(r"get-operation/(?P.+)?$", views.get_operation, name="get-operation"), re_path( r"get-operation-full/own/(?P.+)?$", views.get_operation, name="get-own-operation-full", kwargs={"full": True, "force_own": True}, ), re_path( r"get-operation-full/(?P.+)?$", views.get_operation, name="get-operation-full", kwargs={"full": True}, ), re_path( r"get-operation-shortcut/(?P.+)?$", views.get_operation, name="get-operation-shortcut", kwargs={"full": "shortcut"}, ), re_path( r"get-available-operation-code/(?P.+)?$", views.get_available_operation_code, name="get_available_operation_code", ), re_path( r"revert-operation/(?P.+)/(?P.+)$", views.revert_operation, name="revert-operation", ), re_path( r"show-operation(?:/(?P.+))?/(?P.+)?$", views.show_operation, name=models.Operation.SHOW_URL, ), re_path( r"show-historized-operation/(?P.+)?/(?P.+)?$", views.show_operation, name="show-historized-operation", ), re_path( r"get-administrativeactop/(?P.+)?$", views.get_administrativeactop, name="get-administrativeactop", ), re_path( r"get-administrativeact/(?P.+)?$", views.get_administrativeact, name="get-administrativeact", ), re_path( r"get-administrativeact-full/(?P.+)?$", views.get_administrativeact, name="get-administrativeact-full", kwargs={"full": True}, ), re_path( r"show-administrativeact(?:/(?P.+))?/(?P.+)?$", views.show_administrativeact, name="show-administrativeact", ), # allow specialization for operations re_path( r"show-administrativeact(?:/(?P.+))?/(?P.+)?$", views.show_administrativeact, name="show-administrativeactop", ), # allow specialization for files, treatment, treatment request re_path( r"show-administrativeact(?:/(?P.+))?/(?P.+)?$", views.show_administrativeact, name="show-administrativeactfile", ), re_path( r"show-administrativeact(?:/(?P.+))?/(?P.+)?$", views.show_administrativeact, name="show-administrativeacttreatment", ), re_path( r"show-administrativeact(?:/(?P.+))?/(?P.+)?$", views.show_administrativeact, name="show-administrativeacttreatmentfile", ), re_path( r"generatedoc-administrativeactop/(?P.+)?/(?P.+)?$", views.generatedoc_administrativeactop, name="generatedoc-administrativeactop", ), re_path( r"autocomplete-administrativeact/$", views.autocomplete_administrativeact, name="autocomplete-administrativeact", ), re_path( r"autocomplete-archaeologicalsite/$", views.autocomplete_archaeologicalsite, name="autocomplete-archaeologicalsite", ), re_path( r"new-archaeologicalsite/(?:(?P[^/]+)/)?" r"(?:(?P[^/]+)/)?$", views.new_archaeologicalsite, name="new-archaeologicalsite", ), re_path(r"get-site/(?P.+)?$", views.get_site, name="get-site"), re_path( r"get-site-full/(?P.+)?$", views.get_site, name="get-site-full", kwargs={"full": True}, ), re_path( r"get-site-shortcut/(?P.+)?$", views.get_site, name="get-site-shortcut", kwargs={"full": "shortcut"}, ), re_path(r"revert-site/(?P.+)/(?P.+)$", views.revert_site, name="revert-site"), re_path( r"show-site(?:/(?P.+))?/(?P.+)?$", views.show_site, name=models.ArchaeologicalSite.SHOW_URL, ), re_path( r"show-historized-site/(?P.+)?/(?P.+)?$", views.show_site, name="show-historized-site", ), re_path( r"site_search/(?P.+)?$", check_permissions( ["archaeological_operations.view_archaeologicalsite", "archaeological_operations.view_own_archaeologicalsite"] )(views.site_search_wizard), name="site_search", ), re_path( r"site_creation/(?P.+)?$", check_permissions( ["archaeological_operations.add_archaeologicalsite"] )(views.site_creation_wizard), name="site_creation", ), re_path( r"site_modification/(?P.+)?$", check_permissions( ["archaeological_operations.change_archaeologicalsite", "archaeological_operations.change_own_archaeologicalsite"] )(views.site_modification_wizard), name="site_modification", ), re_path(r"site_modify/(?P.+)/$", views.site_modify, name="site_modify"), re_path( r"site_deletion/(?P.+)?$", check_permissions( ["archaeological_operations.change_archaeologicalsite"] )(views.site_deletion_wizard), name="site_deletion", ), re_path(r"site_delete/(?P.+)/$", views.site_delete, name="delete-site"), re_path( r"autocomplete-patriarche/$", views.autocomplete_patriarche, name="autocomplete-patriarche", ), re_path( r"operation_administrativeact_document/$", views.administrativeactfile_document, name="operation-administrativeact-document", ), re_path( r"^operation-parcels-modify/(?P.+)/$", views.operation_modify_parcels, name="operation-parcels-modify", ), re_path( r"^operation-relations-modify/(?P.+)/$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.operation_modify_relations), name="operation-relation-modify", ), path( "operation-site-relations-modify//", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.operation_site_modify_relations), name="operation-site-relations-modify", ), path( "operation-site-relations-modify///", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.operation_site_modify_relations), name="operation-site-relations-modify", ), path( "site-operation-relations-modify//", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.site_operation_modify_relations), name="site-operation-relations-modify", ), path( "site-operation-relations-modify///", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.site_operation_modify_relations), name="site-operation-relations-modify", ), re_path( r"^operation-qa-bulk-update/(?P[0-9-]+)?/$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.QAOperationForm.as_view()), name="operation-qa-bulk-update", ), re_path( r"^operation-qa-bulk-update/(?P[0-9-]+)?/confirm/$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.QAOperationForm.as_view()), name="operation-qa-bulk-update-confirm", kwargs={"confirm": True}, ), re_path( r"^operation-qa-duplicate/(?P[0-9-]+)?/$", check_permissions( ["archaeological_operations.change_operation", "archaeological_operations.change_own_operation"] )(views.QAOperationdDuplicateFormView.as_view()), name="operation-qa-duplicate", ), re_path( r"^operation-qa-lock/(?P[0-9-]+)?/$", views.QAOperationLockView.as_view(), name="operation-qa-lock", kwargs={"model": models.Operation}, ), re_path( r"^operation-qa-link/(?P[0-9-]+)?/$", QALinkView.as_view(), name="operation-qa-link", kwargs={"model": models.Operation, "url": "operation-qa-link"}, ), re_path( r"^site-qa-duplicate/(?P[0-9-]+)?/$", check_permissions( ["archaeological_operations.change_archaeologicalsite", "archaeological_operations.change_own_archaeologicalsite"] )(views.QAArchaeologicalSiteDuplicateFormView.as_view()), name="site-qa-duplicate", ), re_path( r"^site-qa-lock/(?P[0-9-]+)?/$", views.QASiteLockView.as_view(), name="site-qa-lock", kwargs={"model": models.ArchaeologicalSite}, ), re_path( r"^site-qa-link/(?P[0-9-]+)?/$", QALinkView.as_view(), name="site-qa-link", kwargs={"model": models.ArchaeologicalSite, "url": "site-qa-link"}, ), re_path( r"^site-qa-bulk-update/(?P[0-9-]+)?/$", check_permissions( ["archaeological_operations.change_archaeologicalsite", "archaeological_operations.change_own_archaeologicalsite"] )(views.QAArchaeologicalSiteForm.as_view()), name="site-qa-bulk-update", ), re_path( r"^site-qa-bulk-update/(?P[0-9-]+)?/confirm/$", check_permissions( ["archaeological_operations.change_archaeologicalsite", "archaeological_operations.change_own_archaeologicalsite"] )(views.QAArchaeologicalSiteForm.as_view()), name="site-qa-bulk-update-confirm", kwargs={"confirm": True}, ), re_path( r"generate-stats-operation/(?P.+)/", views.GenerateStatsOperation.as_view(), name="generate-stats-operation", ), re_path( r"api/facets/operation/$", views_api.FacetOperationAPIView.as_view(), name="api-facets-operation" ), re_path( r"api/search/operation/$", views_api.SearchOperationAPI.as_view(), name="api-search-operation" ), re_path( r"api/search/archaeologicalsite/$", views_api.SearchSiteAPI.as_view(), name="api-search-archaeologicalsite" ), path( "api/export/operation//", views_api.ExportOperationAPI.as_view(), name="api-export-operation" ), path( "api/export/archaeologicalsite//", views_api.ExportSiteAPI.as_view(), name="api-export-archaeologicalsite" ), path( "api/get/operation//", views_api.GetOperationAPI.as_view(), name="api-get-operation" ), path( "api/get/site//", views_api.GetSiteAPI.as_view(), name="api-get-archaeologicalsite" ), ]