Projet

Général

Profil

0001-schemas-add-by-year-month-grouping-fixes-27406.patch

Benjamin Dauvergne, 14 janvier 2019 12:36

Télécharger (2,76 ko)

Voir les différences:

Subject: [PATCH] schemas: add by year/month grouping (fixes #27406)

 bijoe/schemas.py      | 16 ++++++++++++++++
 tests/test_schema1.py | 15 +++++++++++++++
 2 files changed, 31 insertions(+)
bijoe/schemas.py
181 181
                    filter_in_join=self.filter_in_join,
182 182
                    value='EXTRACT(year from %s)::integer' % self.value,
183 183
                    filter=False),
184
                Dimension(
185
                    label=u'année et mois (%s)' % self.label,
186

  
187
                    name=self.name + '__yearmonth',
188
                    type='integer',
189
                    join=self.join,
190
                    filter_value='EXTRACT(year from %s) || \'M\' || EXTRACT(month from %s)'
191
                          % (filter_value, filter_value),
192
                    filter_in_join=self.filter_in_join,
193
                    value='TO_CHAR(EXTRACT(month from %s), \'00\') || \'/\' || EXTRACT(year from %s)'
194
                          % (self.value, self.value),
195
                    group_by='EXTRACT(year from %s), EXTRACT(month from %s)' % (self.value,
196
                                                                                  self.value),
197
                    order_by=['EXTRACT(year from %s), EXTRACT(month from %s)' % (self.value,
198
                                                                                  self.value)],
199
                    filter=False),
184 200
                Dimension(
185 201
                    label=u'mois (%s)' % self.label,
186 202
                    name=self.name + '__month',
tests/test_schema1.py
28 28
        ['mois (Date)', 'janvier', u'f\xe9vrier', 'mars', 'avril', 'mai', 'juin', 'juillet', u'ao\xfbt'],
29 29
        ['number of rows', '10', '1', '1', '1', '1', '1', '1', '1'],
30 30
    ]
31

  
32

  
33
def test_yearmonth_drilldown(schema1, app, admin):
34
    login(app, admin)
35
    response = app.get('/').follow()
36
    response = response.click('Facts 1')
37
    form = response.form
38
    form.set('representation', 'table')
39
    form.set('measure', 'simple_count')
40
    form.set('drilldown_x', 'date__yearmonth')
41
    response = form.submit('visualize')
42
    assert get_table(response) == [
43
        [u'ann\xe9e et mois (Date)', '01/2017', '02/2017', '03/2017', '04/2017', '05/2017', '06/2017', '07/2017', '08/2017'],
44
        ['number of rows', '10', '1', '1', '1', '1', '1', '1', '1']
45
    ]
31
-