summaryrefslogtreecommitdiff
path: root/ishtar_common/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-03-04 16:13:11 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-03-04 16:13:11 +0100
commitd7ea54486d88b4459ef7d85ab3304fc6b88e612e (patch)
treedc3767f5df1498adaef0e8f333787ba241f1380a /ishtar_common/forms.py
parent33a0434e5336d8252066c87e5084c4dcfa21ecad (diff)
downloadIshtar-d7ea54486d88b4459ef7d85ab3304fc6b88e612e.tar.bz2
Ishtar-d7ea54486d88b4459ef7d85ab3304fc6b88e612e.zip
QA operation: finds/doc received
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r--ishtar_common/forms.py35
1 files changed, 33 insertions, 2 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index 27741c576..db627789f 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -1079,7 +1079,13 @@ class QAForm(CustomForm, ManageOldType):
MULTI = False
SINGLE_FIELDS = []
REPLACE_FIELDS = []
- PREFIX= "qa_"
+ PREFIX = "qa_"
+ NULL_BOOL_CHOICES = (
+ ("", "--"),
+ ("1", _("Unknown")),
+ ("2", _("Yes")),
+ ("3", _("No")),
+ )
def __init__(self, *args, **kwargs):
self.items = kwargs.pop('items')
@@ -1100,8 +1106,12 @@ class QAForm(CustomForm, ManageOldType):
self.fields[k].widget = forms.HiddenInput()
if k in kwargs['data'] and kwargs['data'][k]:
if hasattr(self, "_get_" + k):
- self.fields[k].rendered_value = getattr(
+ value = getattr(
self, "_get_" + k)(kwargs['data'][k])
+ if value is None:
+ self.fields.pop(k)
+ continue
+ self.fields[k].rendered_value = value
elif hasattr(self.fields[k], "choices"):
values = []
for v in kwargs['data'].getlist(k):
@@ -1150,6 +1160,27 @@ class QAForm(CustomForm, ManageOldType):
value = getattr(item, key) + "\n" + value
setattr(item, key, value)
+ def _get_null_boolean_field(self, value):
+ if value == "1":
+ return _("Set to null")
+ elif value == "2":
+ return _("Yes")
+ elif value == "3":
+ return _("No")
+ return
+
+ def _set_null_boolean_field(self, item, key):
+ value = self.cleaned_data.get(key, None)
+ if value == "1":
+ value = None
+ elif value == "2":
+ value = True
+ elif value == "3":
+ value = False
+ else:
+ return
+ setattr(item, key[3:], value)
+
def save(self, items, user):
for item in items:
for base_key in self.cleaned_data: