#!/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 from ishtar_common.utils import check_permissions from ishtar_common.views import QALinkView from archaeological_context_records import models, views, views_api # be careful: each check_permissions must be relevant with ishtar_menu # forms urlpatterns = [ # Context records re_path( r"record_search/(?P.+)?$", check_permissions(["archaeological_context_records.view_contextrecord", "archaeological_context_records.view_own_contextrecord"])( views.record_search_wizard ), name="record_search", ), re_path( r"contextrecord_search/(?P.+)?$", check_permissions(["archaeological_context_records.view_contextrecord", "archaeological_context_records.view_own_contextrecord"])( views.record_search_wizard ), name="contextrecord_search", ), re_path( r"record_creation/(?P.+)?$", check_permissions(["archaeological_context_records.add_contextrecord"])( views.record_creation_wizard ), name="record_creation", ), re_path( r"record_modification/(?P.+)?$", check_permissions(["archaeological_context_records.change_contextrecord", "archaeological_context_records.change_own_contextrecord"])( views.record_modification_wizard ), name="record_modification", ), re_path(r"record_modify/(?P.+)/$", views.record_modify, name="record_modify"), re_path( r"record_deletion/(?P.+)?$", check_permissions(["archaeological_context_records.change_contextrecord", "archaeological_context_records.change_own_contextrecord"])( views.record_deletion_wizard ), name="record_deletion", ), re_path( r"record_delete/(?P.+)/$", views.record_delete, name="delete-contextrecord" ), re_path( r"autocomplete-contextrecord/$", views.autocomplete_contextrecord, name="autocomplete-contextrecord", ), re_path( r"show-contextrecord(?:/(?P.+))?/(?P.+)?$", views.show_contextrecord, name=models.ContextRecord.SHOW_URL, ), # show-contextrecordrelation is only a view the id point to a context record re_path( r"show-contextrecord(?:/(?P.+))?/(?P.+)?$", views.show_contextrecord, name="show-contextrecordrelation", ), re_path( r"show-historized-contextrecord/(?P.+)?/(?P.+)?$", views.show_contextrecord, name="show-historized-contextrecord", ), re_path( r"revert-contextrecord/(?P.+)/(?P.+)$", views.revert_contextrecord, name="revert-contextrecord", ), re_path( r"generate-relation-image-contextrecord/(?P.+)/(" r"?P(below)|(above)|(full))?", views.GenerateRelationImage.as_view(), name="generate-relation-image-contextrecord", ), re_path( r"get-contextrecord/own/(?P.+)?$", views.get_contextrecord, name="get-own-contextrecord", kwargs={"force_own": True}, ), re_path( r"get-contextrecord/(?P.+)?$", views.get_contextrecord, name="get-contextrecord", ), re_path( r"get-contextrecord-for-ope/own/(?P.+)?$", views.get_contextrecord_for_ope, name="get-own-contextrecord-for-ope", kwargs={"force_own": True}, ), re_path( r"get-contextrecord-for-ope/(?P.+)?$", views.get_contextrecord_for_ope, name="get-contextrecord-for-ope", ), re_path( r"get-contextrecord-full/own/(?P.+)?$", views.get_contextrecord, name="get-own-contextrecord-full", kwargs={"full": True, "force_own": True}, ), re_path( r"get-contextrecord-full/(?P.+)?$", views.get_contextrecord, name="get-contextrecord-full", kwargs={"full": True}, ), re_path( r"get-contextrecord-shortcut/(?P.+)?$", views.get_contextrecord, name="get-contextrecord-shortcut", kwargs={"full": "shortcut"}, ), re_path( r"get-contextrecordrelation/(?P.+)?$", views.get_contextrecordrelation, name="get-contextrecordrelation", ), re_path( r"get-contextrecordrelationdetail/(?P.+)?$", views.get_contextrecordrelationdetail, name="get-contextrecordrelationdetail", ), re_path( r"^context-record-relations-modify/(?P.+)/$", check_permissions(["archaeological_context_records.change_contextrecord", "archaeological_context_records.change_own_contextrecord"])( views.context_record_modify_relations ), name="context-record-relation-modify", ), re_path( r"^operation-qa-contextrecord/(?P[0-9]+)/$", check_permissions(["archaeological_context_records.add_contextrecord"])( views.QAOperationContextRecordView.as_view() ), name="operation-qa-contextrecord", ), re_path( r"^contextrecord-qa-lock/(?P[0-9-]+)?/$", views.QAContextRecordLockView.as_view(), name="contextrecord-qa-lock", kwargs={"model": models.ContextRecord}, ), re_path( r"^contextrecord-qa-link/(?P[0-9-]+)?/$", QALinkView.as_view(), name="contextrecord-qa-link", kwargs={"model": models.ContextRecord, "url": "contextrecord-qa-link"}, ), re_path( r"^contextrecord-qa-duplicate/(?P[0-9-]+)?/$", check_permissions(["archaeological_context_records.change_contextrecord", "archaeological_context_records.change_own_contextrecord"])( views.QAContextRecordDuplicateFormView.as_view() ), name="contextrecord-qa-duplicate", ), re_path( r"^contextrecord-qa-bulk-update/(?P[0-9-]+)?/$", check_permissions(["archaeological_context_records.change_contextrecord", "archaeological_context_records.change_own_contextrecord"])( views.QAContextRecordForm.as_view() ), name="contextrecord-qa-bulk-update", ), re_path( r"^contextrecord-qa-bulk-update/(?P[0-9-]+)?/confirm/$", check_permissions(["archaeological_context_records.change_contextrecord", "archaeological_context_records.change_own_contextrecord"])( views.QAContextRecordForm.as_view() ), name="contextrecord-qa-bulk-update-confirm", kwargs={"confirm": True}, ), re_path( r"api/facets/contextrecord/$", views_api.FacetContextRecordAPIView.as_view(), name="api-facets-contextrecord" ), re_path( r"api/search/context-record/$", views_api.SearchContextRecordAPI.as_view(), name="api-search-contextrecord" ), path( "api/export/contextrecord//", views_api.ExportContextRecordAPI.as_view(), name="api-export-contextrecord" ), path( "api/get/contextrecord//", views_api.GetContextRecordAPI.as_view(), name="api-get-contextrecord" ), ]