summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorCefin <kevon@tuta.io>2021-11-29 12:07:47 +0000
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-08 09:58:49 +0200
commitfda77743c85ccfeeec7c53bf16af4c432326605a (patch)
treed4a1e401fc9c56d3106c36aaa42254605978bc75 /ishtar_common/views.py
parent08f5125e9be5fe5c8773552a447da67ccf801208 (diff)
downloadIshtar-fda77743c85ccfeeec7c53bf16af4c432326605a.tar.bz2
Ishtar-fda77743c85ccfeeec7c53bf16af4c432326605a.zip
rapid action add document with parent source #5172
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 1363684a7..485facd75 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -2100,6 +2100,13 @@ class DocumentCreateView(DocumentFormMixin, CreateView):
def get_form_kwargs(self):
kwargs = super(DocumentCreateView, self).get_form_kwargs()
initial = kwargs.get("initial", {})
+
+ try:
+ document = models.Document.objects.get(pk=self.kwargs.get("pk"))
+ assert check_permission(self.request, "document/create", document.pk)
+ except (AssertionError, models.Document.DoesNotExist):
+ raise Http404()
+
for related_key in models.Document.RELATED_MODELS_ALT:
model = models.Document._meta.get_field(related_key).related_model
if model.SLUG in self.request.GET:
@@ -2108,9 +2115,19 @@ class DocumentCreateView(DocumentFormMixin, CreateView):
except model.DoesNotExist:
continue
initial[related_key] = str(item.pk)
+
+ value = getattr(document, related_key)
+ if hasattr(value, "all"):
+ value = ",".join([str(v.pk) for v in value.all()])
+ if hasattr(value, "pk"):
+ value = value.pk
+ initial[related_key] = value
+ initial["source"] = document.pk
+
if initial:
kwargs["initial"] = initial
kwargs["user"] = self.request.user
+
return kwargs