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 | d7ea54486d88b4459ef7d85ab3304fc6b88e612e (patch) | |
| tree | dc3767f5df1498adaef0e8f333787ba241f1380a /ishtar_common | |
| parent | 33a0434e5336d8252066c87e5084c4dcfa21ecad (diff) | |
| download | Ishtar-d7ea54486d88b4459ef7d85ab3304fc6b88e612e.tar.bz2 Ishtar-d7ea54486d88b4459ef7d85ab3304fc6b88e612e.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:  | 
