summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-30 12:22:07 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-30 13:01:47 +0200
commit89e4c57bde7ccba2783790ca9ec23e194b35c754 (patch)
tree2846523d64a9e675f349cc68a13c6060a89718a9 /archaeological_operations/models.py
parentbab24bc21a09d5d1aa3558f55caaa9686aa17897 (diff)
downloadIshtar-89e4c57bde7ccba2783790ca9ec23e194b35c754.tar.bz2
Ishtar-89e4c57bde7ccba2783790ca9ec23e194b35c754.zip
🚑️ templates get values: fix recursion (containers -> operations -> containers -> ...)
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py39
1 files changed, 21 insertions, 18 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index c6bc25615..035ab74e2 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -610,8 +610,7 @@ class ArchaeologicalSite(
@property
def finds(self):
- from archaeological_finds.models import Find
-
+ Find = apps.get_model("archaeological_finds", "Find")
return Find.objects.filter(
base_finds__context_record__archaeological_site__pk=self.pk
)
@@ -684,7 +683,7 @@ class ArchaeologicalSite(
@classmethod
def get_query_owns(cls, ishtaruser):
- from archaeological_warehouse.models import Warehouse
+ Warehouse = apps.get_model("archaeological_warehouse", "Warehouse")
q = (
cls._construct_query_own(
@@ -1628,14 +1627,22 @@ class Operation(
if filtr and "uuid" not in filtr:
filtr.append("uuid")
containers = []
- if (not filtr or (f"{prefix}containers" in filtr or f"{prefix}all_containers" in filtr)):
+ if (not filtr or (
+ f"{prefix}containers" in filtr or f"{prefix}all_containers" in filtr)) and (
+ f"{prefix}containers" not in exclude
+ ):
containers = self.get_containers_values(filtr, exclude)
values[f"{prefix}containers"] = containers[:]
document_containers = []
- if not filtr or (f"{prefix}document_containers" in filtr or f"{prefix}all_containers" in filtr):
+ if (not filtr or (
+ f"{prefix}document_containers" in filtr or f"{prefix}all_containers" in filtr)) and (
+ f"{prefix}documents_containers"
+ ):
document_containers = self.get_document_containers_values(filtr, exclude)
values[f"{prefix}document_containers"] = document_containers[:]
- if not filtr or f"{prefix}all_containers" in filtr:
+ if (not filtr or f"{prefix}all_containers" in filtr) and (
+ f"{prefix}all_containers" not in exclude
+ ):
values[f"{prefix}all_containers"] = containers[:]
current_ids = [container["uuid"] for container in containers]
for container in document_containers:
@@ -1727,13 +1734,11 @@ class Operation(
return " ; ".join([town.name for town in self.towns.all()])
def has_finds(self):
- from archaeological_finds.models import BaseFind
-
+ BaseFind = apps.get_model("archaeological_finds", "BaseFind")
return BaseFind.objects.filter(context_record__operation=self).count()
def finds(self):
- from archaeological_finds.models import BaseFind
-
+ BaseFind = apps.get_model("archaeological_finds", "BaseFind")
return BaseFind.objects.filter(context_record__operation=self)
def get_reference(self, full=False):
@@ -1872,8 +1877,7 @@ class Operation(
return dct
def context_record_relations_q(self):
- from archaeological_context_records.models import RecordRelations as CRRL
-
+ CRRL = apps.get_model("archaeological_context_records", "RecordRelations")
return CRRL.objects.filter(left_record__operation=self)
def context_record_docs_q(self):
@@ -2052,7 +2056,7 @@ class Operation(
@classmethod
def get_query_owns(cls, ishtaruser):
- from archaeological_warehouse.models import Warehouse
+ Warehouse = apps.get_model("archaeological_warehouse", "Warehouse")
q = (
cls._construct_query_own(
@@ -2160,8 +2164,7 @@ class Operation(
return self._get_or_set_stats("_nb_finds", update)
def _nb_finds(self):
- from archaeological_finds.models import Find
-
+ Find = apps.get_model("archaeological_finds", "Find")
q = Find.objects.filter(
base_finds__context_record__operation=self,
upstream_treatment_id__isnull=True,
@@ -2175,7 +2178,7 @@ class Operation(
)
def _nb_finds_by_material_type(self):
- from archaeological_finds.models import Find
+ Find = apps.get_model("archaeological_finds", "Find")
nbs = []
q = (
@@ -2206,7 +2209,7 @@ class Operation(
return self._get_or_set_stats("_nb_finds_by_types", update, expected_type=list)
def _nb_finds_by_types(self):
- from archaeological_finds.models import Find
+ Find = apps.get_model("archaeological_finds", "Find")
nbs = []
q = (
@@ -2238,7 +2241,7 @@ class Operation(
)
def _nb_finds_by_periods(self):
- from archaeological_finds.models import Find
+ Find = apps.get_model("archaeological_finds", "Find")
nbs = []
q = (