From a2f21e02e0a6dff1433f7ad0317a280bd615cfa0 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 7 Feb 2019 23:37:24 +0100 Subject: [PATCH] feeder: fix value_label SQL for boolean fields (fixes #30477) --- tests/olap.model | 2 +- wcs_olap/feeder.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) 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': -- 2.20.1