diff options
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 |
commit | fd29eb529c5b14ca22f2b7000c1f8d2d79ba412c (patch) | |
tree | dc3767f5df1498adaef0e8f333787ba241f1380a /ishtar_common | |
parent | ae0eaa3f3f5c3b3f0268699b716cf0e589f92d0d (diff) | |
download | Ishtar-fd29eb529c5b14ca22f2b7000c1f8d2d79ba412c.tar.bz2 Ishtar-fd29eb529c5b14ca22f2b7000c1f8d2d79ba412c.zip |
QA operation: finds/doc received
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms.py | 35 |
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: |