summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-27 08:10:58 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:23:17 +0100
commitfa9d2d44979eea3219f36df3d50807db3ba9d446 (patch)
tree9e078e49b1a2a9380fb7e6cb2ced7b6cb88fa246
parent4b12742432d2241f351670c308046ecb7f4ebaa9 (diff)
downloadIshtar-fa9d2d44979eea3219f36df3d50807db3ba9d446.tar.bz2
Ishtar-fa9d2d44979eea3219f36df3d50807db3ba9d446.zip
Admin - custom form: fix form choice initialization (refs #5418)
-rw-r--r--CHANGES.md9
-rw-r--r--ishtar_common/admin.py13
-rw-r--r--ishtar_common/version.py4
3 files changed, 21 insertions, 5 deletions
diff --git a/CHANGES.md b/CHANGES.md
index 46a506b4c..611ab8959 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,11 +1,18 @@
---
title: Ishtar changelog
-date: 2022-07-22
+date: 2022-07-27
---
Ishtar changelog
================
+v4.0.11 - 2022-07-
+--------------------
+
+### Bug fix ###
+
+- Admin - custom form: fix form choice initialization
+
v4.0.10 - 2022-07-22
--------------------
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 3e388d615..fd74ee9d4 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -1848,6 +1848,14 @@ def get_choices_form():
return forms
+class CustomFormForm(forms.ModelForm):
+ class Meta:
+ model = models.CustomForm
+ exclude = []
+
+ form = forms.ChoiceField(label=_("Form"), choices=get_choices_form)
+
+
class ExcludeFieldFormset(BaseInlineFormSet):
def get_form_kwargs(self, index):
kwargs = super(ExcludeFieldFormset, self).get_form_kwargs(index)
@@ -1869,7 +1877,7 @@ class ExcludeFieldForm(forms.ModelForm):
field = forms.ChoiceField(label=_("Field"))
def __init__(self, *args, **kwargs):
- choices = kwargs.pop("choices")
+ choices = kwargs.pop("choices") if "choices" in kwargs else []
super(ExcludeFieldForm, self).__init__(*args, **kwargs)
self.fields["field"].choices = choices
@@ -1896,7 +1904,7 @@ class JsonFieldForm(forms.ModelForm):
exclude = []
def __init__(self, *args, **kwargs):
- choices = kwargs.pop("choices")
+ choices = kwargs.pop("choices") if "choices" in kwargs else []
super(JsonFieldForm, self).__init__(*args, **kwargs)
self.fields["json_field"].choices = choices
@@ -1929,6 +1937,7 @@ class CustomFormAdmin(admin.ModelAdmin):
"profile_types",
)
autocomplete_fields = ["users"]
+ form = CustomFormForm
inlines = [ExcludeFieldInline, JsonFieldInline]
def get_inline_instances(self, request, obj=None):
diff --git a/ishtar_common/version.py b/ishtar_common/version.py
index 773944beb..8f1c213f0 100644
--- a/ishtar_common/version.py
+++ b/ishtar_common/version.py
@@ -1,5 +1,5 @@
-# 4.0.10
-VERSION = (4, 0, 10)
+# 4.0.11
+VERSION = (4, 0, 11)
def get_version():