diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-11-13 12:40:56 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:21 +0100 |
commit | 774f682838f56443daf81c48ffde6377788a10f3 (patch) | |
tree | d3468cb46fefa64abf0f5c50d687ec29d64168aa /archaeological_finds/models_finds.py | |
parent | 813045eb9613d8ee88faec69ec79bc2bcdb3e49a (diff) | |
download | Ishtar-774f682838f56443daf81c48ffde6377788a10f3.tar.bz2 Ishtar-774f682838f56443daf81c48ffde6377788a10f3.zip |
Labels: fix filtering
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index b6dfeabfd..6e09364ac 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -363,6 +363,8 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, GeoItem, no_find = kwargs.get("no_find", False) values = super(BaseFind, self).get_values( prefix=prefix, no_values=no_values, filtr=filtr, **kwargs) + if not filtr or prefix + "complete_id" in filtr: + values[prefix + "complete_id"] = self.complete_id() if no_find: return values if not filtr or prefix + "finds" in filtr: @@ -1666,7 +1668,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, return _("FIND") def __str__(self): - return self.cached_label or u"" + return self.cached_label or "" @property def short_label(self): @@ -1674,11 +1676,11 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, @property def dating(self): - return u" ; ".join([str(dating) for dating in self.datings.all()]) + return " ; ".join([str(dating) for dating in self.datings.all()]) @property def excavation_ids(self): - return u" - ".join( + return " - ".join( [base_find['excavation_id'] for base_find in self.base_finds.values( 'excavation_id').order_by('pk').all() @@ -1764,11 +1766,22 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, no_base_finds = kwargs["no_base_finds"] values = super(Find, self).get_values( prefix=prefix, no_values=no_values, filtr=filtr, **kwargs) - if no_base_finds or (filtr and prefix + "base_finds" not in filtr): + if no_base_finds: + return values + # by default attach first basefind data + if filtr and prefix + "base_finds" not in filtr: + bf = self.get_first_base_find() + if not bf: + return values + v = bf.get_values( + prefix=prefix, + no_values=True, filtr=filtr, **kwargs) + v.update(values) + values = v return values kwargs["no_find"] = True values[prefix + "base_finds"] = [ - base_find.get_values(no_values=True, filtr=None, **kwargs) + base_find.get_values(no_values=True, filtr=filtr, **kwargs) for base_find in self.base_finds.distinct().order_by('-pk').all() ] return values |