From f6d654370d6b69017eb40b19b05a81da7e5d76ef Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 20 Nov 2018 15:29:42 +0100 Subject: [PATCH] engine: allow dimensions without joins (fixes #28191) --- bijoe/engine.py | 2 +- tests/fixtures/schema1/schema.json | 12 ++++++++++++ tests/test_schema1.py | 10 ++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/bijoe/engine.py b/bijoe/engine.py index 9c550dd..80f21d2 100644 --- a/bijoe/engine.py +++ b/bijoe/engine.py @@ -289,7 +289,7 @@ class EngineCube(object): for dimension_name in drilldown: dimension = self.dimensions[dimension_name] - joins.update(dimension.join) + joins.update(dimension.join or []) projections.append('%s AS %s' % (dimension.value_label or dimension.value, dimension.name)) group_by.append(dimension.group_by or dimension.value) diff --git a/tests/fixtures/schema1/schema.json b/tests/fixtures/schema1/schema.json index caaaea7..9b3156d 100644 --- a/tests/fixtures/schema1/schema.json +++ b/tests/fixtures/schema1/schema.json @@ -68,6 +68,18 @@ } ], "dimensions": [ + { + "name": "date", + "label": "Date", + "type": "date", + "value": "date" + }, + { + "name": "hour", + "type": "integer", + "label": "Hour", + "value": "EXTRACT(hour from datetime)" + }, { "name": "innersubcategory", "label": "Inner SubCategory", diff --git a/tests/test_schema1.py b/tests/test_schema1.py index fbec6f9..b46495f 100644 --- a/tests/test_schema1.py +++ b/tests/test_schema1.py @@ -27,3 +27,13 @@ def test_simple(schema1, app, admin): [u'Inner SubCategory', u'subé1', u'subé3'], ['number of rows', '15', '1'], ] + form = response.form + form.set('representation', 'table') + form.set('measure', 'simple_count') + form.set('drilldown_x', 'date__month') + response = form.submit('visualize') + assert 'big-msg-info' not in response + assert get_table(response) == [ + ['mois (Date)', 'janvier', u'f\xe9vrier', 'mars', 'avril', 'mai', 'juin', 'juillet', u'ao\xfbt'], + ['number of rows', '10', '1', '1', '1', '1', '1', '1', '1'], + ] -- 2.18.0