diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-01 12:37:31 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-04-01 12:37:31 +0200 |
| commit | 1c4f2610c5003e24dc2a695290e54b1c931abdc2 (patch) | |
| tree | 464359ef144196cf1d8da29de1c9f4f113bb099d /ishtar_common/widgets.py | |
| parent | 32f5c7fc925e0dce5dfcca35383dd52ae766bfee (diff) | |
| download | Ishtar-develop-5.0-BPC.tar.bz2 Ishtar-develop-5.0-BPC.zip | |
✨ general management of filter on types - filter qualification types for actorsdevelop-5.0-BPC
Diffstat (limited to 'ishtar_common/widgets.py')
| -rw-r--r-- | ishtar_common/widgets.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index b11ae0c5d..304e6a669 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -232,12 +232,16 @@ class Select2DynamicMultipleField(forms.MultipleChoiceField): class Select2Base(Select2Media): def __init__( - self, attrs=None, choices=(), remote=None, model=None, new=None, available=None + self, attrs=None, choices=(), remote=None, model=None, new=None, available=None, + remote_filter=None ): self.remote = remote self.available = available self.model = model self.new = new + self.remote_filter = None + if attrs and "remote_filter" in attrs: + self.remote_filter = attrs.pop("remote_filter") super(Select2Base, self).__init__(attrs, choices) def get_q(self): @@ -275,8 +279,8 @@ class Select2Base(Select2Media): attrs["style"] = "width: 370px" if value and getattr(self, "multiple", False) and \ - not isinstance(value, (list, tuple)): - value = value.split(",") + not isinstance(value, (list, tuple)): + value = value.split(",") options = "" if self.remote: @@ -331,6 +335,8 @@ class Select2Base(Select2Media): html = "<div class='input-group'>" url_new = "new-" + self.model.SLUG url_new = reverse(url_new, args=["id_" + name]) + if self.remote_filter: + url_new += self.remote_filter # WARNING: the modal for the form must be in the main template # "extra_form_modals" list is used for that in form or view new = ( @@ -412,6 +418,8 @@ class Select2BaseField(object): attrs["modal"] = kwargs.pop("modal") if kwargs.get("style", None): attrs["style"] = kwargs.pop("style") + if kwargs.get("remote_filter", None): + attrs["remote_filter"] = kwargs.pop("remote_filter") kwargs["widget"] = widget( model=self.model, available=self.available, |
