diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-20 17:26:11 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-20 17:26:11 +0200 |
commit | b40e778486675637045168fb2cec39570818ff4b (patch) | |
tree | 47aa70288b52f5ba8402732971ee117fa1d6d10d /archaeological_finds/models_finds.py | |
parent | 660815271838337eecc243f677082c635d4e435f (diff) | |
download | Ishtar-b40e778486675637045168fb2cec39570818ff4b.tar.bz2 Ishtar-b40e778486675637045168fb2cec39570818ff4b.zip |
Finds: add "material_types_recommendations" string for templates - update doc with base jinja filters
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 706a2bbbf..f91269456 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -2105,11 +2105,12 @@ class Find( ("base_finds", _("List of associated base finds")), ("material_types_label", _("Material types string")), ("material_types_code", _("Material types code string")), + ("material_types_recommendations", _("Recommendations string from material")), ] def get_material_types_code(self) -> str: """ - Return pipe separated material type code inside a container + Return pipe separated material type code """ materials = set() for material in self.material_types.exclude(code__isnull=True).values_list( @@ -2120,7 +2121,7 @@ class Find( def get_material_types(self) -> str: """ - Return comma separated string of material types inside a container + Return comma separated string of material types """ materials = set() for material in self.material_types.exclude(label__isnull=True).values_list( @@ -2129,6 +2130,18 @@ class Find( materials.add(material) return ", ".join(sorted(materials)) + def get_material_types_recommendations(self) -> str: + """ + Return comma separated string of recommendations from material + """ + recommendations = set() + for recommendation in self.material_types.exclude( + recommendation__isnull=True).exclude( + recommendation="").values_list("recommendation", flat=True + ): + recommendations.add(recommendation) + return ", ".join(sorted(recommendations)) + def get_values(self, prefix="", no_values=False, filtr=None, **kwargs): no_base_finds = False if "no_base_finds" in kwargs: @@ -2140,6 +2153,9 @@ class Find( values[prefix + "material_types_label"] = 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 not filtr or prefix + "material_types_recommendations" in filtr: + values[prefix + "material_types_recommendations"] = \ + self.get_material_types_recommendations() if no_base_finds: return values # by default attach first basefind data |