diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-01-13 17:15:06 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-01-13 17:15:06 +0100 | 
| commit | 316fe3103e7ffeb448886b5d92be3ef73f7e30be (patch) | |
| tree | aafda29084b953738dba9a962b773e90da29d152 /archaeological_finds/models_finds.py | |
| parent | 8d1b5498ed4ac74509676792702ecf01e07783c9 (diff) | |
| download | Ishtar-316fe3103e7ffeb448886b5d92be3ef73f7e30be.tar.bz2 Ishtar-316fe3103e7ffeb448886b5d92be3ef73f7e30be.zip  | |
Sheet find: limit to 15 related finds in treatment tables
Diffstat (limited to 'archaeological_finds/models_finds.py')
| -rw-r--r-- | archaeological_finds/models_finds.py | 25 | 
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()  | 
