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
commit1aa28e42dbbc685ab7fa69f3d6d2b9ec428d51b3 (patch)
treec00721c289d7945d3442e1871145f77f633a495d /ishtar_common/forms.py
parent3ed6e60d12bb1df84687d9407aaf6da2ee153bd2 (diff)
downloadIshtar-1aa28e42dbbc685ab7fa69f3d6d2b9ec428d51b3.tar.bz2
Ishtar-1aa28e42dbbc685ab7fa69f3d6d2b9ec428d51b3.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):