summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_treatments.py
diff options
context:
space:
mode:
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
commitafa3761a57ac3d2fe2cabe50a4956a188119bddf (patch)
tree02f9abfc37c78c31ed53185d10ac28e24f551918 /archaeological_finds/models_treatments.py
parent72b0e6ca45a7296f6288bf994ff3da86c85bad32 (diff)
downloadIshtar-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.py41
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):