diff options
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 |
commit | 89e4c57bde7ccba2783790ca9ec23e194b35c754 (patch) | |
tree | 2846523d64a9e675f349cc68a13c6060a89718a9 /archaeological_operations/models.py | |
parent | bab24bc21a09d5d1aa3558f55caaa9686aa17897 (diff) | |
download | Ishtar-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.py | 39 |
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 = ( |