summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py44
1 files changed, 33 insertions, 11 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 3715c0326..bc0cb7b09 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1216,9 +1216,34 @@ class DocumentItem(object):
return Document.objects.none()
return self.documents.filter(image__isnull=False).exclude(image="")
+ def get_extra_actions(self, request):
+ """
+ For sheet template: return "Add document / image" action
+ """
+ # url, base_text, icon, extra_text, extra css class
+ actions = []
+ can_add_doc = request.user.ishtaruser.has_right(
+ 'add_document', request.session) or (
+ request.user.ishtaruser.has_right(
+ 'add_own_document', request.session) and
+ self.is_own(request.user.ishtaruser)
+ )
+ if can_add_doc:
+ actions = [
+ (
+ reverse("create-document") + "?{}={}".format(self.SLUG,
+ self.pk),
+ _(u"Add document/image"),
+ "fa fa-plus",
+ _(u"doc./image"),
+ ""
+ )
+ ]
+ return actions
+
-class BaseHistorizedItem(FullSearch, Imported, JsonData, FixAssociated,
- DocumentItem):
+class BaseHistorizedItem(DocumentItem, FullSearch, Imported, JsonData,
+ FixAssociated):
"""
Historized item with external ID management.
All historized items are searcheable and have a data json field
@@ -2707,19 +2732,16 @@ class Person(Address, Merge, OwnPerms, ValueGetter):
return slugify(u"-".join(values))
def operation_docs_q(self):
- from archaeological_operations.models import OperationSource
- return OperationSource.objects.filter(
- authors__person=self)
+ return Document.objects.filter(
+ authors__person=self, operations__pk__isnull=False)
def contextrecord_docs_q(self):
- from archaeological_context_records.models import ContextRecordSource
- return ContextRecordSource.objects.filter(
- authors__person=self)
+ return Document.objects.filter(
+ authors__person=self, context_records__pk__isnull=False)
def find_docs_q(self):
- from archaeological_finds.models import FindSource
- return FindSource.objects.filter(
- authors__person=self)
+ return Document.objects.filter(
+ authors__person=self, finds__pk__isnull=False)
def save(self, *args, **kwargs):
super(Person, self).save(*args, **kwargs)