visualisation: return 0.0 for None measures in json_data (#38913)

This commit is contained in:
Benjamin Dauvergne 2020-01-13 11:26:50 +01:00
parent 5b72a4be6d
commit 5473870dc2
3 changed files with 9 additions and 3 deletions

View File

@ -137,6 +137,12 @@ class Measure(Base):
'expression': str,
}
@property
def default_value(self):
if self.type in ['integer', 'percent']:
return 0
return None
class Dimension(Base):
__slots__ = ['name', 'label', 'type', 'join', 'value', 'value_label',

View File

@ -181,7 +181,7 @@ class Visualization(object):
return data
def default_cell(self):
return MeasureCell(measure=self.measure, value=None)
return MeasureCell(measure=self.measure, value=self.measure.default_value)
def table_2d(self):
'''Layout data into 2d tables'''

View File

@ -192,11 +192,11 @@ def test_none_percent_json_data(schema1, app, admin):
assert visu.json_data() == [
{
'coords': [{'value': u'2017'}, {'value': u'cat\xe92'}],
'measures': [{'value': None}]
'measures': [{'value': 0}]
},
{
'coords': [{'value': u'2017'}, {'value': u'cat\xe93'}],
'measures': [{'value': None}]},
'measures': [{'value': 0}]},
{
'coords': [{'value': u'2017'}, {'value': u'cat\xe91'}],
'measures': [{'value': 94.11764705882354}]},