summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/migrations/0124_archaeologicalsite_cached_types.py23
-rw-r--r--archaeological_operations/models.py26
2 files changed, 47 insertions, 2 deletions
diff --git a/archaeological_operations/migrations/0124_archaeologicalsite_cached_types.py b/archaeological_operations/migrations/0124_archaeologicalsite_cached_types.py
new file mode 100644
index 000000000..65f526773
--- /dev/null
+++ b/archaeological_operations/migrations/0124_archaeologicalsite_cached_types.py
@@ -0,0 +1,23 @@
+# Generated by Django 4.2.21 on 2026-03-11 10:32
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_operations', '0123_add_timezone_django_v4'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='archaeologicalsite',
+ name='cached_types',
+ field=models.TextField(blank=True, default='', help_text='Generated automatically - do not edit', verbose_name='Cached types label'),
+ ),
+ migrations.AddField(
+ model_name='historicalarchaeologicalsite',
+ name='cached_types',
+ field=models.TextField(blank=True, default='', help_text='Generated automatically - do not edit', verbose_name='Cached types label'),
+ ),
+ ]
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 8401501b3..609f7b229 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -372,6 +372,7 @@ class ArchaeologicalSite(
"reference",
"name",
"cached_towns_label",
+ "cached_types",
"cached_periods",
"cached_remains",
]
@@ -380,6 +381,7 @@ class ArchaeologicalSite(
"cached_towns_label": _("Towns"),
"cached_periods": _("Periods"),
"cached_remains": _("Remains"),
+ "cached_types": _("Types"),
}
LONG_SLUG = "archaeologicalsite"
@@ -432,6 +434,7 @@ class ArchaeologicalSite(
"cultural_attributions",
"towns",
"collaborators",
+ "types"
]
DATED_FIELDS = BaseHistorizedItem.DATED_FIELDS + ["sinking_date"]
@@ -583,6 +586,7 @@ class ArchaeologicalSite(
"cached_towns_label",
"cached_periods",
"cached_remains",
+ "cached_types",
]
DOWN_MODEL_UPDATE = ["context_records"]
@@ -724,6 +728,12 @@ class ArchaeologicalSite(
default="",
help_text=_("Generated automatically - do not edit"),
)
+ cached_types = models.TextField(
+ _("Cached types label"),
+ blank=True,
+ default="",
+ help_text=_("Generated automatically - do not edit"),
+ )
history = HistoricalRecords(bases=[HistoryModel])
@@ -943,10 +953,22 @@ class ArchaeologicalSite(
return self.towns_label() or "-"
def _generate_cached_remains(self):
- return " & ".join([str(remain) for remain in self.remains.all()]) or "-"
+ q = self.remains
+ if not self.remains.exists():
+ return "-"
+ return " & ".join(list(q.values_list("label", flat=True)))
def _generate_cached_periods(self):
- return " & ".join([str(period) for period in self.periods.all()]) or "-"
+ q = self.periods
+ if not self.periods.exists():
+ return "-"
+ return " & ".join(list(q.values_list("label", flat=True)))
+
+ def _generate_cached_types(self):
+ q = self.types
+ if not self.types.exists():
+ return "-"
+ return " & ".join(list(q.values_list("label", flat=True)))
def natural_key(self):
return (self.reference,)