diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-10-04 16:48:00 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-10-04 16:48:00 +0200 |
commit | e3e9c9f31dbd629fcd20e6e73a34aded4058e8c6 (patch) | |
tree | c00721c289d7945d3442e1871145f77f633a495d /ishtar_common/forms.py | |
parent | 68e38915828b506bf74e0cad46268b35d0b54b73 (diff) | |
download | Ishtar-e3e9c9f31dbd629fcd20e6e73a34aded4058e8c6.tar.bz2 Ishtar-e3e9c9f31dbd629fcd20e6e73a34aded4058e8c6.zip |
Generic management of types in forms
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r-- | ishtar_common/forms.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index f252b83bc..5c3de7b77 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -251,6 +251,8 @@ def get_data_from_formset(data): class ManageOldType(object): + TYPES = [] # (field_name, model, is_multiple) list + def __init__(self, *args, **kwargs): """ init_data is used to manage deactivated items in list when editing @@ -288,6 +290,12 @@ class ManageOldType(object): self.init_data[k].append(val) self.init_data = MultiValueDict(self.init_data) super(ManageOldType, self).__init__(*args, **kwargs) + for field_name, model, is_multiple in self.TYPES: + self.fields[field_name].choices = \ + model.get_types( + empty_first=not is_multiple, + initial=self.init_data.get(field_name)) + self.fields[field_name].help_text = model.get_help() class DocumentGenerationForm(forms.Form): |