diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-02-28 11:59:18 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-02-28 11:59:18 +0100 |
commit | bb12c577feaa09fdbed586ea834a9976560d63cd (patch) | |
tree | feacfb67c33a0c7106dcb23be9bd24e510a7b133 | |
parent | f361dc2a2262b7b8452f4b59f20ee50b6248f36b (diff) | |
download | Ishtar-bb12c577feaa09fdbed586ea834a9976560d63cd.tar.bz2 Ishtar-bb12c577feaa09fdbed586ea834a9976560d63cd.zip |
Templates: fix base finds get value from container
-rw-r--r-- | archaeological_context_records/models.py | 2 | ||||
-rw-r--r-- | archaeological_warehouse/models.py | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 5dfaa427a..870a10046 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -808,7 +808,7 @@ class ContextRecord( values = super(ContextRecord, self).get_values( prefix=prefix, no_values=no_values, filtr=filtr, **kwargs ) - if prefix and no_base_finds: + if prefix and no_base_finds or kwargs.get("force_no_base_finds", True): return values if not filtr or prefix + "base_finds" in filtr: diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index add786012..268a0466a 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -1652,12 +1652,13 @@ class Container( from_find = prefix.startswith("container_") or prefix.startswith( "container_ref_" ) + base_exclude = [prefix + "container", prefix + "container_ref"] if ( (not filtr or prefix + "finds" in filtr) and not from_find and "finds" not in kwargs.get("exclude", []) ): - kwargs["exclude"] = [prefix + "container", prefix + "container_ref"] + kwargs["exclude"] = base_exclude[:] # prevent recursive call values[prefix + "finds"] = [ f.get_values(prefix=prefix, no_values=True, filtr=None, **kwargs) @@ -1684,13 +1685,14 @@ class Container( if bf: cr = bf.context_record if not filtr or cr_in_filter: - kwargs["exclude"] = [prefix + "operation"] + kwargs["exclude"] = base_exclude[:] + [prefix + "operation"] + kwargs["force_no_base_finds"] = True for k, v in cr.get_values( prefix=prefix, no_values=True, filtr=None, **kwargs ).items(): values[prefix + "context_record_" + k] = v if not filtr or operation_in_filter: - kwargs["exclude"] = [prefix + "context_records"] + kwargs["exclude"] = base_exclude[:] + [prefix + "context_records"] for k, v in cr.operation.get_values( prefix=prefix, no_values=True, filtr=None, **kwargs ).items(): |