summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 3924ee106..cf58952c9 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -1845,12 +1845,37 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem,
("base_finds.", _("List of associated base finds")),
]
+ def get_material_types_code(self) -> str:
+ """
+ Return pipe separated material type code inside a container
+ """
+ materials = set()
+ for material in self.material_types.exclude(
+ code__isnull=True).values_list("code", flat=True):
+ materials.add(material)
+ return "|".join(sorted(materials))
+
+ def get_material_types(self) -> str:
+ """
+ Return comma separated string of material types inside a container
+ """
+ materials = set()
+ for material in self.material_types.exclude(
+ label__isnull=True).values_list("label", flat=True):
+ materials.add(material)
+ return ", ".join(sorted(materials))
+
def get_values(self, prefix='', no_values=False, filtr=None, **kwargs):
no_base_finds = False
if "no_base_finds" in kwargs:
no_base_finds = kwargs["no_base_finds"]
values = super(Find, self).get_values(
prefix=prefix, no_values=no_values, filtr=filtr, **kwargs)
+ if not filtr or prefix + 'material_types' in filtr:
+ values[prefix + 'material_types'] = self.get_material_types()
+ if not filtr or prefix + 'material_types_code' in filtr:
+ values[prefix + 'material_types_code'] = \
+ self.get_material_types_code()
if no_base_finds:
return values
# by default attach first basefind data