diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-17 16:57:21 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-17 16:57:21 +0200 |
commit | 49109e55a37f9ee6e345372a92080562bd3b18e3 (patch) | |
tree | b0f50f4fd5ee700714784011227c3c7202a3425f | |
parent | baf73923f82030c50e32ad57d276dc1f956e38ad (diff) | |
download | Ishtar-49109e55a37f9ee6e345372a92080562bd3b18e3.tar.bz2 Ishtar-49109e55a37f9ee6e345372a92080562bd3b18e3.zip |
Manage boolean type for JSON fields (refs #4235)
-rw-r--r-- | ishtar_common/forms.py | 1 | ||||
-rw-r--r-- | ishtar_common/models.py | 3 | ||||
-rw-r--r-- | ishtar_common/templatetags/window_field.py | 17 | ||||
-rw-r--r-- | ishtar_common/wizards.py | 2 |
4 files changed, 18 insertions, 5 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 3ecec9b06..eec66e1a6 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -116,6 +116,7 @@ JSON_VALUE_TYPES_FIELDS = { 'I': (forms.IntegerField, None), 'F': (forms.FloatField, None), 'D': (DateField, None), + 'B': (forms.NullBooleanField, None), 'C': (widgets.Select2DynamicField, None), } diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 1656b1e64..07b4002ff 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -997,6 +997,7 @@ JSON_VALUE_TYPES = ( ('T', _(u"Text")), ('LT', _(u"Long text")), ('I', _(u"Integer")), + ('B', _(u"Boolean")), ('F', _(u"Float")), ('D', _(u"Date")), ('C', _(u"Choices")), @@ -1073,7 +1074,7 @@ class JsonData(models.Model): else: value = None break - if not value: + if value is None: continue if type(value) in (list, tuple): value = u" ; ".join([unicode(v) for v in value]) diff --git a/ishtar_common/templatetags/window_field.py b/ishtar_common/templatetags/window_field.py index db57add4a..f1db8cf48 100644 --- a/ishtar_common/templatetags/window_field.py +++ b/ishtar_common/templatetags/window_field.py @@ -1,8 +1,9 @@ import os from django import template -from django.conf import settings -from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import ugettext as _ +from django.utils.text import mark_safe + from ishtar_common.templatetags.link_to_window import link_to_window register = template.Library() @@ -10,8 +11,16 @@ register = template.Library() @register.inclusion_tag('ishtar/blocks/window_field.html') def field(caption, data, pre_data='', post_data='', li=False, size=None): - if data in (True, False): - data = _(unicode(data)) + if data is True: + data = mark_safe( + u'<i class="text-success fa fa-check" title="{}"></i>'.format( + _(u"Yes")) + ) + elif data is False: + data = mark_safe( + u'<i class="text-danger fa fa-times" title="{}"></i>'.format( + _(u"No")) + ) # fix bad conversion if data == 'None': data = "" diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 5a1ab5843..5cbc857c3 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -1246,6 +1246,8 @@ class Wizard(IshtarWizard): value = value[json_key] if value: initial[key] = value + elif value is False: + initial[key] = 'False' for base_field in c_form.base_fields.keys(): value = obj |