diff options
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/models_finds.py | 23 | ||||
-rw-r--r-- | archaeological_finds/models_treatments.py | 3 |
2 files changed, 19 insertions, 7 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 diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 073083af4..2bfe8d2cb 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -350,10 +350,9 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem, if 'associatedfind_' not in prefix and self.upstream.count(): find = self.upstream.all()[0] new_prefix = prefix + 'associatedfind_' - new_filtr = self._get_values_update_sub_filter(filtr, new_prefix) values.update( find.get_values(prefix=new_prefix, no_values=True, - filtr=new_filtr, **kwargs)) + filtr=filtr, **kwargs)) return values def pre_save(self): |