schemas: add by year/month grouping (fixes #27406)

This commit is contained in:
Benjamin Dauvergne 2018-10-18 19:41:13 +02:00
parent 6974f1f56e
commit 5abfc1d236
2 changed files with 32 additions and 0 deletions

View File

@ -181,6 +181,22 @@ class Dimension(Base):
filter_in_join=self.filter_in_join,
value='EXTRACT(year from %s)::integer' % self.value,
filter=False),
Dimension(
label=u'année et mois (%s)' % self.label,
name=self.name + '__yearmonth',
type='integer',
join=self.join,
filter_value='EXTRACT(year from %s) || \'M\' || EXTRACT(month from %s)'
% (filter_value, filter_value),
filter_in_join=self.filter_in_join,
value='TO_CHAR(EXTRACT(month from %s), \'00\') || \'/\' || EXTRACT(year from %s)'
% (self.value, self.value),
group_by='EXTRACT(year from %s), EXTRACT(month from %s)' % (self.value,
self.value),
order_by=['EXTRACT(year from %s), EXTRACT(month from %s)' % (self.value,
self.value)],
filter=False),
Dimension(
label=u'mois (%s)' % self.label,
name=self.name + '__month',

View File

@ -83,3 +83,19 @@ def test_string_dimension(schema1, app, admin):
form.set('filter__string', ['a', 'b', '__none__'])
response = form.submit('visualize')
assert get_table(response) == [['String', 'a', 'b', 'Aucun(e)'], ['number of rows', '11', '2', '1']]
def test_yearmonth_drilldown(schema1, app, admin):
login(app, admin)
response = app.get('/').follow()
response = response.click('Facts 1')
form = response.form
form.set('representation', 'table')
form.set('measure', 'simple_count')
form.set('drilldown_x', 'date__yearmonth')
response = form.submit('visualize')
assert get_table(response) == [
[u'ann\xe9e et mois (Date)', '01/2017', '02/2017', '03/2017',
'04/2017', '05/2017', '06/2017', '07/2017', '08/2017'],
['number of rows', '10', '1', '1', '1', '1', '1', '1', '1']
]