2279 |
2279 |
first_cell.save()
|
2280 |
2280 |
resp = app.get('/')
|
2281 |
2281 |
assert len(resp.form.fields) == 7
|
2282 |
|
assert 'time_range_start' in resp.form.fields
|
2283 |
|
assert 'time_range_end' in resp.form.fields
|
|
2282 |
assert 'filter-time_range_start' in resp.form.fields
|
|
2283 |
assert 'filter-time_range_end' in resp.form.fields
|
2284 |
2284 |
|
2285 |
|
time_range_field = resp.form['time_range']
|
|
2285 |
time_range_field = resp.form['filter-time_range']
|
2286 |
2286 |
assert time_range_field.value == ''
|
2287 |
2287 |
assert time_range_field.options == [
|
2288 |
2288 |
('', True, '---------'),
|
... | ... | |
2295 |
2295 |
('range', False, 'Free range (date)'),
|
2296 |
2296 |
]
|
2297 |
2297 |
|
2298 |
|
time_interval_field = resp.form['time_interval']
|
|
2298 |
time_interval_field = resp.form['filter-time_interval']
|
2299 |
2299 |
assert time_interval_field.value == 'month'
|
2300 |
2300 |
assert time_interval_field.options == [
|
2301 |
2301 |
('day', False, 'Day'),
|
... | ... | |
2305 |
2305 |
('weekday', False, 'Week day'),
|
2306 |
2306 |
]
|
2307 |
2307 |
|
2308 |
|
service_field = resp.form['service']
|
|
2308 |
service_field = resp.form['filter-service']
|
2309 |
2309 |
assert service_field.value == 'chrono'
|
2310 |
2310 |
assert service_field.options == [
|
2311 |
2311 |
('', False, '---------'),
|
... | ... | |
2313 |
2313 |
('combo', False, 'Combo'),
|
2314 |
2314 |
]
|
2315 |
2315 |
|
2316 |
|
ou_field = resp.form['ou']
|
|
2316 |
ou_field = resp.form['filter-ou']
|
2317 |
2317 |
assert ou_field.value == ''
|
2318 |
2318 |
assert ou_field.options == [
|
2319 |
2319 |
('', True, '---------'),
|
... | ... | |
2328 |
2328 |
old_resp = resp
|
2329 |
2329 |
resp = app.get('/')
|
2330 |
2330 |
for field in ('time_range', 'time_interval', 'service', 'ou'):
|
2331 |
|
assert resp.form[field].options == old_resp.form[field].options
|
|
2331 |
assert resp.form['filter-%s' % field].options == old_resp.form['filter-%s' % field].options
|
2332 |
2332 |
|
2333 |
2333 |
# changing one filter value makes it disappear
|
2334 |
2334 |
cell.filter_params = {'ou': 'default'}
|
... | ... | |
2336 |
2336 |
resp = app.get('/')
|
2337 |
2337 |
assert 'ou' not in resp.form.fields
|
2338 |
2338 |
for field in ('time_range', 'time_interval', 'service'):
|
2339 |
|
assert resp.form[field].options == old_resp.form[field].options
|
|
2339 |
assert resp.form['filter-%s' % field].options == old_resp.form['filter-%s' % field].options
|
2340 |
2340 |
|
2341 |
2341 |
# setting the same value for the other cell makes it appear again
|
2342 |
2342 |
first_cell.filter_params = {'ou': 'default'}
|
2343 |
2343 |
first_cell.save()
|
2344 |
2344 |
resp = app.get('/')
|
2345 |
|
assert resp.form['ou'].value == 'default'
|
|
2345 |
assert resp.form['filter-ou'].value == 'default'
|
2346 |
2346 |
|
2347 |
2347 |
# changing statistics type of cell remove some fields
|
2348 |
2348 |
cell.statistic = Statistic.objects.get(slug='daily')
|
... | ... | |
2351 |
2351 |
assert 'ou' not in resp.form.fields
|
2352 |
2352 |
assert 'service' not in resp.form.fields
|
2353 |
2353 |
for field in ('time_range', 'time_interval'):
|
2354 |
|
assert resp.form[field].options == old_resp.form[field].options
|
|
2354 |
assert resp.form['filter-%s' % field].options == old_resp.form['filter-%s' % field].options
|
2355 |
2355 |
|
2356 |
2356 |
# changing time_interval value makes interval fields disappear
|
2357 |
2357 |
cell.time_range = 'previous-year'
|
2358 |
2358 |
cell.save()
|
2359 |
2359 |
old_resp = resp
|
2360 |
2360 |
resp = app.get('/')
|
2361 |
|
assert 'time_range' not in resp.form.fields
|
2362 |
|
assert 'time_range_start' not in resp.form.fields
|
2363 |
|
assert 'time_range_end' not in resp.form.fields
|
2364 |
|
assert resp.form['time_interval'].options == old_resp.form['time_interval'].options
|
|
2361 |
assert 'filter-time_range' not in resp.form.fields
|
|
2362 |
assert 'filter-time_range_start' not in resp.form.fields
|
|
2363 |
assert 'filter-time_range_end' not in resp.form.fields
|
|
2364 |
assert resp.form['filter-time_interval'].options == old_resp.form['filter-time_interval'].options
|
2365 |
2365 |
|
2366 |
2366 |
# setting the same value for the other cell makes it appear again
|
2367 |
2367 |
first_cell.time_range = 'previous-year'
|
2368 |
2368 |
first_cell.save()
|
2369 |
2369 |
resp = app.get('/')
|
2370 |
|
assert resp.form['time_range'].value == 'previous-year'
|
2371 |
|
assert resp.form['time_interval'].options == old_resp.form['time_interval'].options
|
|
2370 |
assert resp.form['filter-time_range'].value == 'previous-year'
|
|
2371 |
assert resp.form['filter-time_interval'].options == old_resp.form['filter-time_interval'].options
|
2372 |
2372 |
|
2373 |
2373 |
# only common choices are shown
|
2374 |
2374 |
first_cell.statistic.filters[0]['options'].remove({'id': 'day', 'label': 'Day'})
|
2375 |
2375 |
first_cell.statistic.save()
|
2376 |
2376 |
resp = app.get('/')
|
2377 |
|
assert resp.form['time_interval'].options == [
|
|
2377 |
assert resp.form['filter-time_interval'].options == [
|
2378 |
2378 |
('month', True, 'Month'),
|
2379 |
2379 |
('year', False, 'Year'),
|
2380 |
2380 |
]
|
... | ... | |
2383 |
2383 |
first_cell.statistic.filters[0]['options'] = [{'id': 'random', 'label': 'Random'}]
|
2384 |
2384 |
first_cell.statistic.save()
|
2385 |
2385 |
resp = app.get('/')
|
2386 |
|
assert 'time_interval' not in resp.form.fields
|
2387 |
|
assert resp.form['time_range'].value == 'previous-year'
|
|
2386 |
assert 'filter-time_interval' not in resp.form.fields
|
|
2387 |
assert resp.form['filter-time_range'].value == 'previous-year'
|
2388 |
2388 |
|
2389 |
2389 |
# form is not shown if no common filters exist
|
2390 |
2390 |
first_cell.time_range = 'current-year'
|
... | ... | |
2403 |
2403 |
|
2404 |
2404 |
app = login(app)
|
2405 |
2405 |
resp = app.get('/')
|
2406 |
|
time_range_field = resp.form['time_range']
|
|
2406 |
time_range_field = resp.form['filter-time_range']
|
2407 |
2407 |
assert time_range_field.value == ''
|
2408 |
2408 |
assert time_range_field.options == [
|
2409 |
2409 |
('', True, '---------'),
|
... | ... | |
2425 |
2425 |
cell.save()
|
2426 |
2426 |
|
2427 |
2427 |
resp = app.get('/')
|
2428 |
|
time_range_field = resp.form['time_range']
|
|
2428 |
time_range_field = resp.form['filter-time_range']
|
2429 |
2429 |
assert time_range_field.value == ''
|
2430 |
2430 |
assert time_range_field.options == [
|
2431 |
2431 |
('', True, '---------'),
|
... | ... | |
2449 |
2449 |
|
2450 |
2450 |
app = login(app)
|
2451 |
2451 |
resp = app.get('/')
|
2452 |
|
assert 'form' in resp.form.fields
|
2453 |
|
assert 'menu' not in resp.form.fields
|
|
2452 |
assert 'filter-form' in resp.form.fields
|
|
2453 |
assert 'filter-menu' not in resp.form.fields
|
2454 |
2454 |
|
2455 |
2455 |
# select a choice with subfilters in manager
|
2456 |
2456 |
resp = app.get('/manage/pages/%s/' % page.id)
|
... | ... | |
2458 |
2458 |
manager_submit_cell(resp.forms[1])
|
2459 |
2459 |
|
2460 |
2460 |
resp = app.get('/')
|
2461 |
|
assert 'form' in resp.form.fields
|
2462 |
|
assert 'menu' in resp.form.fields
|
|
2461 |
assert 'filter-form' in resp.form.fields
|
|
2462 |
assert 'filter-menu' in resp.form.fields
|
2463 |
2463 |
|
2464 |
2464 |
|
2465 |
2465 |
@with_httmock(new_api_mock)
|
... | ... | |
2483 |
2483 |
assert 'time_interval=month' in request.url
|
2484 |
2484 |
assert 'ou=default' in request.url
|
2485 |
2485 |
|
2486 |
|
app.get(location + '?time_interval=year')
|
|
2486 |
app.get(location + '?filter-time_interval=year')
|
2487 |
2487 |
request = new_api_mock.call['requests'][2]
|
2488 |
2488 |
assert 'time_interval=year' in request.url
|
2489 |
2489 |
assert 'ou=default' in request.url
|
... | ... | |
2497 |
2497 |
assert 'start=2022-01-01' in request.url
|
2498 |
2498 |
assert 'ou=default' in request.url
|
2499 |
2499 |
|
2500 |
|
app.get(location + '?time_range=current-month')
|
|
2500 |
app.get(location + '?filter-time_range=current-month')
|
2501 |
2501 |
request = new_api_mock.call['requests'][4]
|
2502 |
2502 |
assert 'start=2021-10-01' in request.url
|
2503 |
2503 |
assert 'end=2021-11-01' in request.url
|
... | ... | |
2506 |
2506 |
cell.filter_params.clear()
|
2507 |
2507 |
cell.statistic = Statistic.objects.get(slug='filter-multiple')
|
2508 |
2508 |
cell.save()
|
2509 |
|
app.get(location + '?color=green&color=blue')
|
|
2509 |
app.get(location + '?filter-color=green&filter-color=blue')
|
2510 |
2510 |
request = new_api_mock.call['requests'][5]
|
2511 |
2511 |
assert 'color=green&color=blue' in request.url
|
2512 |
2512 |
|
... | ... | |
2515 |
2515 |
cell.filter_params = {'form': 'food-request'}
|
2516 |
2516 |
cell.save()
|
2517 |
2517 |
cell.update_subfilters()
|
2518 |
|
app.get(location + '?menu=vegan')
|
|
2518 |
app.get(location + '?filter-menu=vegan')
|
2519 |
2519 |
request = new_api_mock.call['requests'][7]
|
2520 |
2520 |
assert 'menu=vegan' in request.url
|
2521 |
2521 |
|
2522 |
2522 |
# unknown params
|
2523 |
|
app.get(location + '?time_interval=month&ou=default')
|
|
2523 |
app.get(location + '?filter-time_interval=month&filter-ou=default')
|
2524 |
2524 |
request = new_api_mock.call['requests'][8]
|
2525 |
2525 |
assert 'time_interval=' not in request.url
|
2526 |
2526 |
assert 'ou=' not in request.url
|
2527 |
2527 |
|
2528 |
2528 |
# wrong params
|
2529 |
|
resp = app.get(location + '?time_range_start=xxx')
|
|
2529 |
resp = app.get(location + '?filter-time_range_start=xxx')
|
2530 |
2530 |
assert 'Wrong parameters' in resp.text
|
2531 |
2531 |
assert len(new_api_mock.call['requests']) == 9
|
2532 |
2532 |
|
2533 |
|
-
|