summaryrefslogtreecommitdiff
path: root/ishtar_common/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-02 10:44:05 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-02 10:44:05 +0200
commitc96cba070566ab4703504591a413b9c1e5106f3a (patch)
tree34d3b440a0abefac2d3919aee4690c1ea1f704e5 /ishtar_common/forms.py
parent0f03de06a49675ef16cf5ed0a297524554e06525 (diff)
parent4190b4a7dc03c0b9f1ca4113b4d0706c1bfffa19 (diff)
downloadIshtar-c96cba070566ab4703504591a413b9c1e5106f3a.tar.bz2
Ishtar-c96cba070566ab4703504591a413b9c1e5106f3a.zip
Merge branch 'v0.9' into wheezy
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