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 | 448a95ee01f208122a3cddb18a0eb137f660d5d6 (patch) | |
| tree | d3468cb46fefa64abf0f5c50d687ec29d64168aa /archaeological_finds/models_finds.py | |
| parent | b14b2251e02e0bcf0233e670a7cd1ca93cfdf3cc (diff) | |
| download | Ishtar-448a95ee01f208122a3cddb18a0eb137f660d5d6.tar.bz2 Ishtar-448a95ee01f208122a3cddb18a0eb137f660d5d6.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  | 
