summaryrefslogtreecommitdiff
path: root/ishtar_common/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-02 10:10:59 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-02 10:10:59 +0200
commit151e42654a4bcfcff408c7799db199c71e81b5c5 (patch)
tree02786db1039902c7cc75f76aa7159829299970ac /ishtar_common/forms.py
parent661218e0acd24fc3bca76229b61d0cb91a54be1c (diff)
parent5eb8667794636e379a8c324da46c617ad365747a (diff)
downloadIshtar-151e42654a4bcfcff408c7799db199c71e81b5c5.tar.bz2
Ishtar-151e42654a4bcfcff408c7799db199c71e81b5c5.zip
Merge branch 'master' into v0.9
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r--ishtar_common/forms.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 89df1b1a5..79ca2c360 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -194,6 +194,37 @@ def get_data_from_formset(data):
return values
+class ManageOldType(object):
+ def __init__(self, *args, **kwargs):
+ """
+ init_data is used to manage deactivated items in list when editing
+ old data
+ """
+ prefix = kwargs.get('prefix') or ''
+ self.init_data = {}
+ if 'data' in kwargs and kwargs['data']:
+ for k in kwargs['data']:
+ if prefix not in k:
+ continue
+ new_k = k[len(prefix) + 1:]
+ for val in kwargs['data'].getlist(k):
+ if not val:
+ continue
+ if new_k not in self.init_data:
+ self.init_data[new_k] = []
+ self.init_data[new_k].append(val)
+ if 'initial' in kwargs and kwargs['initial']:
+ for k in kwargs['initial']:
+ if k not in self.init_data or not self.init_data[k]:
+ for val in kwargs['initial'].getlist(k):
+ if not val:
+ continue
+ if k not in self.init_data:
+ self.init_data[k] = []
+ self.init_data[k].append(val)
+ super(ManageOldType, self).__init__(*args, **kwargs)
+
+
class DocumentGenerationForm(forms.Form):
"""
Form to generate document by choosing the template