summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/models.py25
-rw-r--r--archaeological_operations/templates/ishtar/sheet_site.html38
-rw-r--r--ishtar_common/models_common.py6
3 files changed, 46 insertions, 23 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index d2f6861ed..62c0bcf93 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1042,22 +1042,23 @@ class ArchaeologicalSite(
return self.towns_label() or "-"
def _generate_cached_remains(self):
- q = self.remains
- if not self.remains.exists():
- return "-"
- return " & ".join(list(q.values_list("label", flat=True)))
+ return self._regenerate_many_to_many_for_cache("remains")
def _generate_cached_periods(self):
- q = self.periods
- if not self.periods.exists():
- return "-"
- return " & ".join(list(q.values_list("label", flat=True)))
+ return self._regenerate_many_to_many_for_cache("periods")
def _generate_cached_types(self):
- q = self.types
- if not self.types.exists():
- return "-"
- return " & ".join(list(q.values_list("label", flat=True)))
+ return self._regenerate_many_to_many_for_cache("types")
+
+ def _generate_cached_current_states(self):
+ return self._regenerate_many_to_many_for_cache("current_states")
+
+ def _generate_cached_heritage_interests(self):
+ return self._regenerate_many_to_many_for_cache("heritage_interests")
+
+ def _generate_cached_heritage_environmental_protections(self):
+ return self._regenerate_many_to_many_for_cache(
+ "heritage_environmental_protections")
def natural_key(self):
return (self.reference,)
diff --git a/archaeological_operations/templates/ishtar/sheet_site.html b/archaeological_operations/templates/ishtar/sheet_site.html
index 2deb54683..7fda4efe0 100644
--- a/archaeological_operations/templates/ishtar/sheet_site.html
+++ b/archaeological_operations/templates/ishtar/sheet_site.html
@@ -40,16 +40,9 @@
<h3>{% trans "General"%}</h3>
<div class="row">
- {% field_flex "Other reference" item.other_reference %}
- {% field_flex_multiple_obj _("Types") item 'types' %}
- {% field_flex _("Discovery status") item.discovery_status %}
- {% field_flex _("Current status") item.current_status %}
- {% field_flex _("Nature of site") item.nature_of_site %}
- {% field_flex _("Interpretation level") item.interpretation_level %}
- {% field_flex_multiple_obj "Periods" item 'periods' %}
- {% field_flex_multiple_obj "Remains" item 'remains' %}
- {% field_flex_multiple_obj "Cultural attributions" item 'cultural_attributions' %}
- {% field_flex_detail _("Discoverer") item.discoverer %}
+ {% field_flex _("Other reference") item.other_reference %}
+ {% field_flex_multiple_obj _("Heritage interest") item 'heritage_interests' %}
+ {% field_flex_detail_multiple _("Actors") item.actors %}
{% field_flex_detail_multiple _("Collaborators") item.collaborators %}
{% if item.description == item.public_description %}
{% field_flex_full _("Description/Public description") item.description "<pre>" "</pre>" %}
@@ -57,8 +50,31 @@
{% field_flex_full _("Description") item.description "<pre>" "</pre>" %}
{% field_flex_full _("Public description") item.public_description "<pre>" "</pre>" %}
{% endif %}
- {% field_flex_full "Comment" item.comment "<pre>" "</pre>" %}
+ {% field_flex_full _("Comment") item.comment "<pre>" "</pre>" %}
+</div>
+{% 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">
+ {% field_flex_multiple_obj _("Types") item 'types' %}
+ {% field_flex _("Nature of site") item.nature_of_site %}
+ {% field_flex _("Interpretation level") item.interpretation_level %}
+ {% field_flex _("Discovery status") item.discovery_status %}
+ {% field_flex_multiple_obj _("Current states") item 'current_states' %}
+ {% field_flex_multiple_obj _("Periods") item 'periods' %}
+ {% field_flex_multiple_obj _("Remains") item 'remains' %}
+ {% field_flex_multiple_obj _("Cultural attributions") item 'cultural_attributions' %}
+ {% field_flex_detail _("Discoverer") item.discoverer %}
</div>
+{% endif %}
+{% if item.cached_heritage_environmental_protections or item.details_on_protection or item.protection_id or item.protection_date %}
+<h3>{% trans "Protection" %}</h3>
+<div class="row">
+ {% field_flex _("Protection ID") item.protection_id %}
+ {% field_flex _("Protection date") item.protection_date|date:"DATE_FORMAT" %}
+ {% field_flex_multiple_obj _("Heritage and environmental protections") item 'heritage_environmental_protections' %}
+ {% field_flex_full _("Details on protection") item.details_on_protection "<pre>" "</pre>" %}
+</div>
+{% endif %}
{% if item.affmar_number or item.drassm_number or item.oceanographic_service_localisation or item.shipwreck_code or item.sinking_date or item.discovery_area or item.shipwreck_name %}
<h3>{% trans "Underwater"%}</h3>
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py
index a2708945f..ba27b3bbc 100644
--- a/ishtar_common/models_common.py
+++ b/ishtar_common/models_common.py
@@ -3707,6 +3707,12 @@ class MainItem(ShortMenuItem, SerializeItem, SheetItem):
return actions
+ def _regenerate_many_to_many_for_cache(self, attr):
+ q = getattr(self, attr)
+ if not q.exists():
+ return "-"
+ return " & ".join(list(q.values_list("label", flat=True)))
+
class TownManager(models.Manager):
def get_by_natural_key(self, numero_insee, year):