diff options
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 |
commit | c21edc6c6ec4838a44e4e4110ba2244bee5754e6 (patch) | |
tree | caf5e1967285027a05f6458315c7aecd67220402 | |
parent | 68d6310f529279a00b9c86df6d40a44759f7c124 (diff) | |
download | Ishtar-c21edc6c6ec4838a44e4e4110ba2244bee5754e6.tar.bz2 Ishtar-c21edc6c6ec4838a44e4e4110ba2244bee5754e6.zip |
🐛 bulk update form: fix add button with new permissions
-rw-r--r-- | ishtar_common/forms.py | 6 | ||||
-rw-r--r-- | ishtar_common/views.py | 1 | ||||
-rw-r--r-- | ishtar_common/widgets.py | 5 |
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) |