summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
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
commit79fd79177cc6ab59315ed71fd0e2cb0f1fcd0f71 (patch)
tree9367c07079dc213b09d6dff6719fe3bb49aa3e67 /archaeological_operations/models.py
parentdf8486df514668440a8cc68448d95c1beafdb24a (diff)
downloadIshtar-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.py47
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