summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/forms_common.py6
-rw-r--r--ishtar_common/models.py17
-rw-r--r--ishtar_common/templates/ishtar/sheet_document.html3
-rw-r--r--ishtar_common/urls.py2
-rw-r--r--ishtar_common/views.py1
5 files changed, 22 insertions, 7 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index d7c6da1ec..375f68784 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -1272,6 +1272,9 @@ class DocumentForm(forms.ModelForm, CustomForm, ManageOldType):
main_items_fields = {}
if "main_items_fields" in kwargs:
main_items_fields = kwargs.pop("main_items_fields")
+ self.user = None
+ if kwargs.get("user", None):
+ self.user = kwargs.pop("user")
super(DocumentForm, self).__init__(*args, **kwargs)
for related_key in models.Document.RELATED_MODELS_ALT:
model = models.Document._meta.get_field(related_key).related_model
@@ -1327,6 +1330,9 @@ class DocumentForm(forms.ModelForm, CustomForm, ManageOldType):
related_item.main_image = item
related_item.save()
item = models.Document.objects.get(pk=item.pk)
+ if self.user:
+ item.history_creator = self.user
+ item.history_modifier = self.user
item.skip_history_when_saving = True
item.save() # resave to regen the attached items
return item
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index f3ef8103c..ffa5323dd 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -5318,12 +5318,14 @@ class Document(BaseHistorizedItem, QRCodeItem, OwnPerms, ImageModel,
@classmethod
def get_query_owns(cls, ishtaruser):
- Operation = cls.operations.rel.related_model
- ArchaeologicalSite = cls.sites.rel.related_model
- query_own_list = (
- ('operations__', Operation._get_query_owns_dicts(ishtaruser)),
- ('sites__', ArchaeologicalSite._get_query_owns_dicts(ishtaruser)),
- )
+ query_own_list = []
+ for rel_model in cls.RELATED_MODELS:
+ klass = getattr(cls, rel_model).rel.related_model
+ q_own_dct = klass._get_query_owns_dicts(ishtaruser)
+ if q_own_dct:
+ query_own_list.append(
+ (rel_model + "__", q_own_dct)
+ )
q = None
for prefix, owns in query_own_list:
subq = cls._construct_query_own(prefix, owns)
@@ -5332,6 +5334,9 @@ class Document(BaseHistorizedItem, QRCodeItem, OwnPerms, ImageModel,
q = subq
else:
q |= subq
+ q |= cls._construct_query_own('', [
+ {'history_creator': ishtaruser.user_ptr}
+ ])
return q
def get_associated_operation(self):
diff --git a/ishtar_common/templates/ishtar/sheet_document.html b/ishtar_common/templates/ishtar/sheet_document.html
index 48d21ff00..386b33a8a 100644
--- a/ishtar_common/templates/ishtar/sheet_document.html
+++ b/ishtar_common/templates/ishtar/sheet_document.html
@@ -43,6 +43,9 @@
{% field_flex "Additional information" item.additional_information %}
{% field_flex_full "Authors" item.authors|add_links:'person' %}
</div>
+<div class="row">
+ {% include "ishtar/blocks/sheet_creation_section.html" %}
+</div>
{% include "ishtar/blocks/sheet_json.html" %}
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 0efd7e8d9..0d524b668 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.py
@@ -317,7 +317,7 @@ urlpatterns += [
views.QANotAvailable.as_view(), name='qa-not-available'),
]
-urlpatterns += get_urls_for_model(models.Document, views)
+urlpatterns += get_urls_for_model(models.Document, views, own=True)
urlpatterns += [
url(r'(?P<action_slug>' + actions + r')/$', views.action, name='action'),
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index d8474e6b0..7b7a890fb 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1911,6 +1911,7 @@ class DocumentCreateView(DocumentFormMixin, CreateView):
initial[related_key] = str(item.pk)
if initial:
kwargs['initial'] = initial
+ kwargs["user"] = self.request.user
return kwargs