dataviz: fix time filters (#55621)
This commit is contained in:
parent
7d584ee086
commit
56efce9b00
|
@ -365,6 +365,7 @@ class ChartNgCell(CellBase):
|
|||
now = timezone.now().date()
|
||||
if self.time_range == 'current-year':
|
||||
params['start'] = date(year=now.year, month=1, day=1)
|
||||
params['end'] = date(year=now.year + 1, month=1, day=1)
|
||||
elif self.time_range == 'previous-year':
|
||||
params['start'] = date(year=now.year - 1, month=1, day=1)
|
||||
params['end'] = date(year=now.year, month=1, day=1)
|
||||
|
@ -372,13 +373,14 @@ class ChartNgCell(CellBase):
|
|||
params['start'] = date(year=now.year + 1, month=1, day=1)
|
||||
params['end'] = date(year=now.year + 2, month=1, day=1)
|
||||
elif self.time_range == 'current-month':
|
||||
params['start'] = date(year=now.year, month=now.month, day=1)
|
||||
params['start'] = now.replace(day=1)
|
||||
params['end'] = now + relativedelta(day=1, months=1)
|
||||
elif self.time_range == 'previous-month':
|
||||
params['start'] = date(year=now.year, month=now.month - 1, day=1)
|
||||
params['end'] = date(year=now.year, month=now.month, day=1)
|
||||
params['start'] = now + relativedelta(day=1, months=-1)
|
||||
params['end'] = now.replace(day=1)
|
||||
elif self.time_range == 'next-month':
|
||||
params['start'] = date(year=now.year, month=now.month + 1, day=1)
|
||||
params['end'] = date(year=now.year, month=now.month + 2, day=1)
|
||||
params['start'] = now + relativedelta(day=1, months=1)
|
||||
params['end'] = now + relativedelta(day=1, months=2)
|
||||
elif self.time_range == 'current-week':
|
||||
params['start'] = now + relativedelta(weekday=MO(-1))
|
||||
params['end'] = now + relativedelta(weekday=MO(+1), days=+1)
|
||||
|
|
|
@ -1439,6 +1439,36 @@ def test_chartng_cell_new_api_filter_params(new_api_statistics, nocache, freezer
|
|||
assert 'start=2020-10-01' in request.url and 'end=2020-11-03' in request.url
|
||||
|
||||
|
||||
@with_httmock(new_api_mock)
|
||||
def test_chartng_cell_new_api_filter_params_month(new_api_statistics, nocache, freezer):
|
||||
page = Page.objects.create(title='One', slug='index')
|
||||
cell = ChartNgCell(page=page, order=1, placeholder='content')
|
||||
cell.statistic = Statistic.objects.get(slug='one-serie')
|
||||
cell.save()
|
||||
|
||||
cell.filter_params = {'time_interval': 'month', 'ou': 'default'}
|
||||
cell.time_range = 'current-month'
|
||||
cell.save()
|
||||
|
||||
freezer.move_to('2021-01-02')
|
||||
chart = cell.get_chart()
|
||||
request = new_api_mock.call['requests'][0]
|
||||
assert 'start=2021-01-01' in request.url and 'end=2021-02-01' in request.url
|
||||
|
||||
cell.time_range = 'previous-month'
|
||||
cell.save()
|
||||
chart = cell.get_chart()
|
||||
request = new_api_mock.call['requests'][1]
|
||||
assert 'start=2020-12-01' in request.url and 'end=2021-01-01' in request.url
|
||||
|
||||
freezer.move_to('2021-11-02')
|
||||
cell.time_range = 'next-month'
|
||||
cell.save()
|
||||
chart = cell.get_chart()
|
||||
request = new_api_mock.call['requests'][2]
|
||||
assert 'start=2021-12-01' in request.url and 'end=2022-01-01' in request.url
|
||||
|
||||
|
||||
def test_dataviz_check_validity(nocache):
|
||||
page = Page.objects.create(title='One', slug='index')
|
||||
stat = Statistic.objects.create(url='https://stat.com/stats/1/')
|
||||
|
|
Loading…
Reference in New Issue