From e10ae8675f0774b9fb92f0e3dc5df7b3447ed665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 18 May 2016 16:07:06 +0200 Subject: [PATCH] formdata: set raw value to False in variables of unchecked checkbox (#10981) --- tests/test_formdata.py | 18 ++++++++++++++++++ wcs/formdata.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/test_formdata.py b/tests/test_formdata.py index e50416d..3a961bc 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -434,3 +434,21 @@ def test_field_item_substvars(pub): variables = formdata.get_substitution_variables() assert variables.get('form_var_xxx') == 'un' assert variables.get('form_var_xxx_raw') == '1' + +def test_field_bool_substvars(pub): + formdef = FormDef() + formdef.name = 'foobar' + formdef.fields = [fields.BoolField(id='0', label='checkbox', varname='xxx')] + formdef.store() + + formdata = formdef.data_class()() + + formdata.data = {'0': False} + variables = formdata.get_substitution_variables() + assert variables.get('form_var_xxx') == 'False' + assert variables.get('form_var_xxx_raw') is False + + formdata.data = {'0': True} + variables = formdata.get_substitution_variables() + assert variables.get('form_var_xxx') == 'True' + assert variables.get('form_var_xxx_raw') is True diff --git a/wcs/formdata.py b/wcs/formdata.py index 49218dc..a78e84f 100644 --- a/wcs/formdata.py +++ b/wcs/formdata.py @@ -71,7 +71,7 @@ def get_dict_with_varnames(fields, data, formdata=None, varnames_only=False): if formdata is not None: new_data['var_%s_url' % field.varname] = '%sdownload?f=%s' % ( formdata.get_url(), field.id) - elif raw_value: + elif raw_value is not None: new_data['var_%s_raw' % field.varname] = raw_value if field.store_structured_value and data is not None: structured_value = data.get('%s_structured' % field.id) -- 2.8.1