summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-17 12:48:26 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-17 19:46:08 +0100
commitc21edc6c6ec4838a44e4e4110ba2244bee5754e6 (patch)
treecaf5e1967285027a05f6458315c7aecd67220402
parent68d6310f529279a00b9c86df6d40a44759f7c124 (diff)
downloadIshtar-c21edc6c6ec4838a44e4e4110ba2244bee5754e6.tar.bz2
Ishtar-c21edc6c6ec4838a44e4e4110ba2244bee5754e6.zip
🐛 bulk update form: fix add button with new permissions
-rw-r--r--ishtar_common/forms.py6
-rw-r--r--ishtar_common/views.py1
-rw-r--r--ishtar_common/widgets.py5
3 files changed, 12 insertions, 0 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 8c1c0a5b1..6a18102df 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -1311,7 +1311,13 @@ class QAForm(CustomForm, ManageOldType):
def __init__(self, *args, **kwargs):
self.items = kwargs.pop("items")
self.confirm = kwargs.pop("confirm")
+ self.user = kwargs.pop("user", None)
super().__init__(*args, **kwargs)
+ # initialize JQueryAutoComplete user to manage permissions
+ for key in self.fields:
+ widget = self.fields[key].widget
+ if isinstance(widget, widgets.JQueryAutoComplete):
+ widget.user = self.user
len_items = len(self.items)
for k in list(self.fields.keys()):
if self.MULTI and len_items > 1 and k in self.SINGLE_FIELDS:
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 5f175c186..92ae42f46 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -3264,6 +3264,7 @@ class QAItemEditForm(QAItemForm):
def get_form_kwargs(self):
kwargs = super(QAItemEditForm, self).get_form_kwargs()
kwargs["confirm"] = self.confirm
+ kwargs["user"] = self.request.user.ishtaruser
return kwargs
def get_page_name(self):
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index 414cd7eab..765ed7b77 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -724,6 +724,11 @@ class JQueryAutoComplete(forms.TextInput):
self.multiple = multiple
self.limit = limit or {}
self.dynamic_limit = dynamic_limit or []
+ if (self.new or self.modify) and not self.associated_model:
+ raise AttributeError(
+ "JQueryAutoComplete - associated_model must be defined if new or "
+ "modify are set to True"
+ )
def value_from_datadict(self, data, files, name):
v = data.get(name, None)