From 85ebeec494ad02157b382b9210e647d6fc00b15e Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 18 Jan 2019 00:21:52 +0100 Subject: [PATCH 3/3] import non anonymized string columns (fixes #29203) --- tests/olap.model | 7 +++++++ tests/test_wcs.py | 1 + wcs_olap/feeder.py | 12 +++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/olap.model b/tests/olap.model index 6a3d74e..4620bb5 100644 --- a/tests/olap.model +++ b/tests/olap.model @@ -239,6 +239,13 @@ "value" : "\"function__receiver\".id", "value_label" : "\"function__receiver\".label" }, + { + "filter": true, + "label": "1st field", + "name": "field_string", + "type": "string", + "value": "\"field_string\"" + }, { "filter" : true, "join" : [ diff --git a/tests/test_wcs.py b/tests/test_wcs.py index 31f615a..80d61b3 100644 --- a/tests/test_wcs.py +++ b/tests/test_wcs.py @@ -66,6 +66,7 @@ schema = olap ('formdata_demande', 'geolocation_base'), ('formdata_demande', 'json_data'), ('formdata_demande', 'status_id'), + ('formdata_demande', 'field_field_string'), ('formdata_demande', 'field_field_item'), ('formdata_demande', 'field_field_bool'), ('formdata_demande', 'function__receiver'), diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index 5b1c07c..d86dca1 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -564,6 +564,8 @@ class WcsFormdefFeeder(object): field_def = 'smallint REFERENCES %s (id)' % table_name elif field.type == 'bool': field_def = 'boolean' + elif field.type == 'string': + field_def = 'varchar' else: continue self.fields.append(field) @@ -701,7 +703,7 @@ class WcsFormdefFeeder(object): v = self.items_mappings[field.varname].get(raw) else: v = raw and self.get_item_id(field, raw) - elif field.type == 'bool': + elif field.type in ('string', 'bool'): v = raw # unstructured storage of field values @@ -895,6 +897,14 @@ class WcsFormdefFeeder(object): 'value_label': '(case when "%s" IS NOT NULL then \'Oui\' else \'Non\' end)' % field.varname, 'filter': True, } + elif field.type == 'string': + dimension = { + 'name': field.varname, + 'label': field.label.lower(), + 'type': 'string', + 'value': '"%s"' % field.varname, + 'filter': True, + } else: continue if join: -- 2.20.1