diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms_common.py | 6 | ||||
-rw-r--r-- | ishtar_common/models.py | 17 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/sheet_document.html | 3 | ||||
-rw-r--r-- | ishtar_common/urls.py | 2 | ||||
-rw-r--r-- | ishtar_common/views.py | 1 |
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 |