diff options
Diffstat (limited to 'archaeological_operations/models.py')
| -rw-r--r-- | archaeological_operations/models.py | 47 | 
1 files changed, 32 insertions, 15 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 5ca822f73..f5bf540fa 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -598,11 +598,11 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, CompleteIdentifierIte              else:                  current_operations.pop(relation.right_record.pk)          rel_type = RelationType.get_cache('has_got') -        for missing in current_operations: +        for missing, value in current_operations.items():              RecordRelations.objects.create(                  left_record=top_operation, -                right_record=current_operations[missing], -                relation_type=rel_type +                right_record=value, +                relation_type=rel_type,              ) @@ -1708,12 +1708,11 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem,          return self._get_or_set_stats('_nb_documents', update)      def _nb_documents(self): -        nbs = self.documents.count() + \ +        return self.documents.count() + \              Document.objects.filter(                  context_records__operation=self).count() + \              Document.objects.filter(                  finds__base_finds__context_record__operation=self).count() -        return nbs      @property      def nb_documents_by_types(self, update=False): @@ -1910,7 +1909,8 @@ post_save.connect(post_save_cache, sender=ActType)  post_delete.connect(post_save_cache, sender=ActType) -class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): +class AdministrativeAct(DocumentItem, BaseHistorizedItem, OwnPerms, +                        ValueGetter):      TABLE_COLS = ['full_ref', 'signature_date__year', 'index', 'act_type',                    'act_object', 'signature_date',                    'associated_file__cached_label', @@ -2190,6 +2190,13 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):      towns_label = models.TextField(          _("Towns"), blank=True, default="",          help_text=_("Cached values get from associated towns")) +    documents = models.ManyToManyField( +        Document, related_name="administrativeacts", +        verbose_name=_("Documents"), blank=True) +    main_image = models.ForeignKey( +        Document, related_name='main_image_administrativeacts', +        on_delete=models.SET_NULL, +        verbose_name=_("Main image"), blank=True, null=True)      history = HistoricalRecords()      _prefix = 'adminact_' @@ -2225,13 +2232,26 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):              return 'delete-administrativeact-treatmentfile'      def __str__(self): -        return settings.JOINT.join( +        lbl = "" +        if self.year: +            lbl = str(self.year) +            if self.index: +                lbl += "-{}".format(self.index) +        if lbl: +            lbl += " - " +        lbl += self.act_type.label + " - " +        return lbl + settings.JOINT.join(              [str(item) for item in [                  self.related_item, self.act_object]               if item])      full_ref_lbl = _("Ref.") +    def _get_base_image_path(self): +        if self.year: +            return str(self.year) +        return "" +      @property      def full_ref(self):          lbl = [] @@ -2294,14 +2314,11 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):              return self.treatment_file      def get_extra_templates(self, request): -        templates = [] -        for template in self.act_type.associated_template.all(): -            urlname = "generatedoc-administrativeactop" -            templates.append( -                (template.name, reverse( -                    urlname, args=[self.pk, template.pk])) -            ) -        return templates +        urlname = "generatedoc-administrativeactop" +        return [ +            (template.name, reverse(urlname, args=[self.pk, template.pk])) +            for template in self.act_type.associated_template.all() +        ]      def get_filename(self):          filename = self.related_item.associated_filename  | 
