diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-11-06 12:05:11 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-11-06 12:06:43 +0100 |
commit | afa3761a57ac3d2fe2cabe50a4956a188119bddf (patch) | |
tree | 02f9abfc37c78c31ed53185d10ac28e24f551918 /archaeological_finds/models_treatments.py | |
parent | 72b0e6ca45a7296f6288bf994ff3da86c85bad32 (diff) | |
download | Ishtar-afa3761a57ac3d2fe2cabe50a4956a188119bddf.tar.bz2 Ishtar-afa3761a57ac3d2fe2cabe50a4956a188119bddf.zip |
Label generation: optimize template evaluation
Diffstat (limited to 'archaeological_finds/models_treatments.py')
-rw-r--r-- | archaeological_finds/models_treatments.py | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 071d80af1..a7af1117e 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -318,8 +318,8 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem, Upstream finds label :return: string """ - return u" ; ".join([f.cached_label for f in self.upstream.all()]) - upstream_lbl.short_description = _(u"Upstream finds") + return " ; ".join([f.cached_label for f in self.upstream.all()]) + upstream_lbl.short_description = _("Upstream finds") upstream_lbl.admin_order_field = 'upstream__cached_label' def get_extra_actions(self, request): @@ -328,26 +328,31 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem, if self.can_do(request, 'add_administrativeact'): actions += [ (reverse('treatment-add-adminact', args=[self.pk]), - _(u"Add associated administrative act"), "fa fa-plus", - _(u"admin. act"), "", False), + _("Add associated administrative act"), "fa fa-plus", + _("admin. act"), "", False), ] return actions - def get_values(self, prefix='', no_values=False): - values = super(Treatment, self).get_values(prefix=prefix, - no_values=no_values) - values[prefix + "upstream_finds"] = u" ; ".join( - [str(up) for up in self.upstream.all()]) - values[prefix + "downstream_finds"] = u" ; ".join( - [str(down) for down in self.downstream.all()]) - values[prefix + "operations"] = u" ; ".join( - [str(ope) for ope in self.get_query_operations().all()]) - if self.upstream.count(): + def get_values(self, prefix='', no_values=False, filtr=None, **kwargs): + values = super(Treatment, self).get_values( + prefix=prefix, no_values=no_values, filtr=filtr, **kwargs) + if not filtr or prefix + "upstream_finds" in filtr: + values[prefix + "upstream_finds"] = " ; ".join( + [str(up) for up in self.upstream.all()]) + if not filtr or prefix + "downstream_finds" in filtr: + values[prefix + "downstream_finds"] = " ; ".join( + [str(up) for up in self.downstream.all()]) + + if not filtr or prefix + "operations" in filtr: + values[prefix + "operations"] = " ; ".join( + [str(ope) for ope in self.get_query_operations().all()]) + if 'associatedfind_' not in prefix and self.upstream.count(): find = self.upstream.all()[0] - if 'associatedfind_' not in prefix: - values.update( - find.get_values(prefix=prefix + 'associatedfind_', - no_values=True)) + 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)) return values def pre_save(self): |