diff --git a/tests/olap.model b/tests/olap.model index 126ba8c..8f33ab8 100644 --- a/tests/olap.model +++ b/tests/olap.model @@ -263,7 +263,7 @@ "name": "bool", "type": "bool", "value": "\"field_bool\"", - "value_label": "(case when \"field_bool\" IS NOT NULL then 'Oui' else 'Non' end)" + "value_label": "(CASE WHEN \"field_bool\" IS NULL THEN NULL WHEN \"field_bool\" THEN 'Oui' ELSE 'Non' END)" } ], "fact_table" : "formdata_demande", diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index 90850d0..179d298 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -902,7 +902,11 @@ class WcsFormdefFeeder(object): 'label': field.label.lower(), 'type': 'bool', 'value': '"field_%s"' % field.varname, - 'value_label': '(case when "field_%s" IS NOT NULL then \'Oui\' else \'Non\' end)' % field.varname, + 'value_label': '(CASE WHEN "field_%(varname)s" IS NULL THEN NULL' + ' WHEN "field_%(varname)s" THEN \'Oui\'' + ' ELSE \'Non\' END)' % { + 'varname': field.varname, + }, 'filter': True, } elif field.type == 'string':