From 1562c200ca28da7b5931b9c992e803c830510499 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 27 Jul 2022 08:10:58 +0200 Subject: Admin - custom form: fix form choice initialization (refs #5418) --- ishtar_common/admin.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'ishtar_common/admin.py') 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): -- cgit v1.2.3