diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-12-04 16:12:23 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:22 +0100 |
commit | 79fd79177cc6ab59315ed71fd0e2cb0f1fcd0f71 (patch) | |
tree | 9367c07079dc213b09d6dff6719fe3bb49aa3e67 /archaeological_operations/models.py | |
parent | df8486df514668440a8cc68448d95c1beafdb24a (diff) | |
download | Ishtar-79fd79177cc6ab59315ed71fd0e2cb0f1fcd0f71.tar.bz2 Ishtar-79fd79177cc6ab59315ed71fd0e2cb0f1fcd0f71.zip |
Add documents to administrative acts (refs #4999)
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 |