diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-12-03 11:27:56 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:49 +0200 |
commit | 6b85053eb23bd4ec43044fc23fac13fc4e45fa4c (patch) | |
tree | 951920eb84dc8c5fb5090c52b8e985470d0048ce | |
parent | b561e9ba89385922b939f739a674c82f5b15a889 (diff) | |
download | Ishtar-6b85053eb23bd4ec43044fc23fac13fc4e45fa4c.tar.bz2 Ishtar-6b85053eb23bd4ec43044fc23fac13fc4e45fa4c.zip |
Documents - add a sub-document from sheet: refactoring, use GET parameters instead of url parameters (refs #5172)
-rw-r--r-- | ishtar_common/models.py | 6 | ||||
-rw-r--r-- | ishtar_common/urls.py | 7 | ||||
-rw-r--r-- | ishtar_common/views.py | 18 |
3 files changed, 12 insertions, 19 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 197ac5dcc..c8056a4ab 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -4214,10 +4214,10 @@ class Document( if can_create_document: actions += [ ( - reverse("create-document-source", args=[self.pk]), - _("Add document with source parent"), + reverse("create-document") + f"?source_pk={self.pk}", + _("Add sub-document"), "fa fa-plus", - _("Doc./src"), + _("sub-document"), "", False, ) diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py index de881e1ba..7bbdc189f 100644 --- a/ishtar_common/urls.py +++ b/ishtar_common/urls.py @@ -486,13 +486,6 @@ urlpatterns += [ name="create-document", ), url( - r"document/create/(?P<pk>[0-9-]+)?/$", - check_rights(["add_document", "add_own_document"])( - views.DocumentCreateView.as_view() - ), - name="create-document-source", - ), - url( r"document/edit/$", check_rights(["change_document", "change_own_document"])( views.DocumentSelectView.as_view() diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 19fc9f848..6f5953841 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2100,14 +2100,14 @@ class DocumentCreateView(DocumentFormMixin, CreateView): def get_form_kwargs(self): kwargs = super(DocumentCreateView, self).get_form_kwargs() initial = kwargs.get("initial", {}) - document_parent = None - value = None + source = None - if self.kwargs.get("pk"): + if self.request.GET.get("source_pk", None): try: - document_parent = models.Document.objects.get(pk=self.kwargs.get("pk")) - assert check_permission(self.request, "document/create", document_parent.pk) - except (AssertionError, models.Document.DoesNotExist): + source = models.Document.objects.get( + pk=self.request.GET.get("source_pk") + ) + except models.Document.DoesNotExist: raise Http404() for related_key in models.Document.RELATED_MODELS_ALT: @@ -2119,15 +2119,15 @@ class DocumentCreateView(DocumentFormMixin, CreateView): continue initial[related_key] = str(item.pk) - if document_parent: + if source: for k in models.Document.RELATED_MODELS: - value = getattr(document_parent, k) + value = getattr(source, k) if hasattr(value, "all"): value = ",".join([str(v.pk) for v in value.all()]) if hasattr(value, "pk"): value = value.pk initial[k] = value - initial["source"] = document_parent.pk + initial["source"] = source.pk if initial: kwargs["initial"] = initial |