summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py25
1 files changed, 18 insertions, 7 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 93bed4ab3..45c750f66 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -548,17 +548,20 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
bf.context_record.operation.get_reference(),
self.index)
- def _get_treatments(self, model, rel='upstream'):
+ def _get_treatments(self, model, rel='upstream', limit=None):
treatments, findtreats = [], []
- for findtreat in model.objects.filter(
+ q = model.objects.filter(
find_id=self.pk).order_by(
'treatment_nb', 'treatment__start_date',
- 'treatment__end_date').distinct().all():
+ 'treatment__end_date')
+ for findtreat in q.distinct().all():
if findtreat.pk in findtreats:
continue
findtreats.append(findtreat.pk)
q = getattr(findtreat.treatment, rel).distinct().order_by(
'label')
+ if limit:
+ q = q[:limit]
treatments.append((q.all(), findtreat.treatment))
return treatments
@@ -568,15 +571,23 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
return ""
return "{} {}".format(self.weight, self.weight_unit or "")
- def upstream_treatments(self):
+ def upstream_treatments(self, limit=None):
from archaeological_finds.models_treatments import \
FindUpstreamTreatments
- return self._get_treatments(FindUpstreamTreatments, 'upstream')
+ return self._get_treatments(FindUpstreamTreatments, 'upstream',
+ limit=limit)
- def downstream_treatments(self):
+ def limited_upstream_treatments(self):
+ return self.upstream_treatments(15)
+
+ def downstream_treatments(self, limit=None):
from archaeological_finds.models_treatments import \
FindDownstreamTreatments
- return self._get_treatments(FindDownstreamTreatments, 'downstream')
+ return self._get_treatments(FindDownstreamTreatments, 'downstream',
+ limit=limit)
+
+ def limited_downstream_treatments(self):
+ return self.downstream_treatments(15)
def all_treatments(self):
return self.upstream_treatments() + self.downstream_treatments()