summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-03-31 18:45:10 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-03-31 18:45:10 +0200
commit09264888638ba506b33f6fc08350950b4629df0a (patch)
tree26aadf9f3582344e271826f437d5c6201a85b81f /archaeological_operations
parented72a1cbbdd35f0997bec4d2cf25d4a012ea79db (diff)
downloadIshtar-09264888638ba506b33f6fc08350950b4629df0a.tar.bz2
Ishtar-09264888638ba506b33f6fc08350950b4629df0a.zip
✨ sites - datings: manage datings (forms, sheet)
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/models.py10
-rw-r--r--archaeological_operations/templates/ishtar/sheet_site.html14
-rw-r--r--archaeological_operations/urls.py27
-rw-r--r--archaeological_operations/views.py26
4 files changed, 74 insertions, 3 deletions
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
@@ -920,6 +920,16 @@ class ArchaeologicalSite(
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]),
_("Modify site-operation relations"),
"fa fa-retweet",
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 "<pre>" "</pre>" %}
</div>
+{% if item.cached_periods or dating_list %}
+ <h3>{% trans "Periods / Datings" %}</h3>
+ {% 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 %}
<h3>{% trans "Scientific" %}</h3>
<div class="row">
@@ -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/<int:pk>/",
+ check_permissions(
+ ["archaeological_sites.change_archaeologicalsite",
+ "archaeological_sites.change_own_archaeologicalsite"])(
+ views.site_dating_add
+ ),
+ name="site-dating-add",
+ ),
+ path(
+ "site-dating/<int:pk>/<int:dating_pk>/",
+ check_permissions(
+ ["archaeological_sites.change_archaeologicalsite",
+ "archaeological_sites.change_own_archaeologicalsite"])(
+ views.site_dating_modify
+ ),
+ name="site-dating-modify",
+ ),
+ path(
+ "site-dating-delete/<int:dating_pk>/",
+ 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<pks>[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