From 32f5c7fc925e0dce5dfcca35383dd52ae766bfee Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 31 Mar 2026 18:45:10 +0200 Subject: ✨ sites - datings: manage datings (forms, sheet) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archaeological_operations/models.py | 10 ++++++++ .../templates/ishtar/sheet_site.html | 14 ++++++++++- archaeological_operations/urls.py | 27 ++++++++++++++++++++++ archaeological_operations/views.py | 26 +++++++++++++++++++-- 4 files changed, 74 insertions(+), 3 deletions(-) (limited to 'archaeological_operations') diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 62c0bcf93..7bf654639 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -918,6 +918,16 @@ class ArchaeologicalSite( actions.append(self.get_add_geo_action()) if can_edit_site and not is_locked: + actions += [ + ( + reverse("site-dating-add", args=[self.pk]), + _("Add dating"), + "fa fa-plus", + _("dating"), + "", + True, + ), + ] actions += [ ( reverse("site-operation-relations-modify", args=[self.pk, window_id]), diff --git a/archaeological_operations/templates/ishtar/sheet_site.html b/archaeological_operations/templates/ishtar/sheet_site.html index 7fda4efe0..1de4c367f 100644 --- a/archaeological_operations/templates/ishtar/sheet_site.html +++ b/archaeological_operations/templates/ishtar/sheet_site.html @@ -8,6 +8,11 @@ {% endblock %} {% block content %} +{# trick to set to null non existing variable #} +{% with permission_view_own_archaeologicalsite=permission_view_own_archaeologicalsite %} + +{% with can_change=permission_change_own_archaeologicalsite|or_:permission_change_archaeologicalsite %} +{% with dating_list=item|m2m_listing:"datings" %} {% with permission_change_own_geovectordata=permission_change_own_geovectordata %} {% with permission_change_geovectordata=permission_change_geovectordata %} @@ -52,6 +57,13 @@ {% endif %} {% field_flex_full _("Comment") item.comment "
" "
" %} +{% if item.cached_periods or dating_list %} +

{% trans "Periods / Datings" %}

+ {% field_flex_multiple_obj _("Periods") item 'periods' %} + {% with url_dating="site-dating" %} + {% include "ishtar/blocks/sheet_dating_list.html" %} + {% endwith %} +{% endif %} {% if item.cached_types or item.nature_of_site or item.interpretation_level or item.discovery_status or item.cached_current_states or item.cached_periods or item.cached_remains or item.cultural_attributions.count or item.discoverer %}

{% trans "Scientific" %}

@@ -152,5 +164,5 @@ {% endif %} {% endif %} -{% endwith %} {% endwith %} {% endwith %} +{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %}{% endwith %} {% endblock %} diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 3082418d9..2af502f9f 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -424,6 +424,33 @@ urlpatterns = [ name="site-qa-link", kwargs={"model": models.ArchaeologicalSite, "url": "site-qa-link"}, ), + path( + "site-dating//", + check_permissions( + ["archaeological_sites.change_archaeologicalsite", + "archaeological_sites.change_own_archaeologicalsite"])( + views.site_dating_add + ), + name="site-dating-add", + ), + path( + "site-dating///", + check_permissions( + ["archaeological_sites.change_archaeologicalsite", + "archaeological_sites.change_own_archaeologicalsite"])( + views.site_dating_modify + ), + name="site-dating-modify", + ), + path( + "site-dating-delete//", + check_permissions( + ["archaeological_sites.change_archaeologicalsite", + "archaeological_sites.change_own_archaeologicalsite"])( + views.site_dating_delete + ), + name="site-dating-delete", + ), re_path( r"^site-qa-bulk-update/(?P[0-9-]+)?/$", check_permissions( diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index ecba76e05..3449290e0 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -43,7 +43,10 @@ from ishtar_common.models import ( ) from archaeological_context_records.models import ContextRecord from ishtar_common.utils import check_permissions_condition + from ishtar_common.views import ( + get_dating_delete, + get_dating_form, gen_generate_doc, QAItemEditForm, QABaseLockView, @@ -662,8 +665,27 @@ def operation_site_modify(model, related_model, related_key, formset_class, url_ return view -operation_site_modify_relations = operation_site_modify(models.Operation, models.ArchaeologicalSite, "archaeological_sites", forms.OpeSiteRelationsFormSet, "operation-site-relations-modify") -site_operation_modify_relations = operation_site_modify(models.ArchaeologicalSite, models.Operation, "operations", forms.SiteOpeRelationsFormSet, "site-operation-relations-modify") +operation_site_modify_relations = operation_site_modify( + models.Operation, models.ArchaeologicalSite, "archaeological_sites", + forms.OpeSiteRelationsFormSet, "operation-site-relations-modify") +site_operation_modify_relations = operation_site_modify( + models.ArchaeologicalSite, models.Operation, "operations", + forms.SiteOpeRelationsFormSet, "site-operation-relations-modify") + + +site_dating_add = get_dating_form( + models.ArchaeologicalSite, models.SiteDating, "site-dating-add" +) + + +site_dating_modify = get_dating_form( + models.ArchaeologicalSite, models.SiteDating, "site-dating-modify" +) + + +site_dating_delete = get_dating_delete( + models.ArchaeologicalSite, models.SiteDating, "site-dating-delete" +) # archaeological sites -- cgit v1.2.3