summaryrefslogtreecommitdiff
path: root/ishtar_common/forms.py
diff options
context:
space:
mode:
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
commite3e9c9f31dbd629fcd20e6e73a34aded4058e8c6 (patch)
treec00721c289d7945d3442e1871145f77f633a495d /ishtar_common/forms.py
parent68e38915828b506bf74e0cad46268b35d0b54b73 (diff)
downloadIshtar-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.py8
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):