Project

General

Profile

0001-dataviz-fix-filters-cell-display-of-subfilters-on-em.patch

Valentin Deniaud, 15 September 2022 12:31 PM

Download (2.47 KB)

View differences:

Subject: [PATCH] dataviz: fix filters cell display of subfilters on empty
 filter values (#69112)

 combo/apps/dataviz/forms.py |  2 +-
 tests/test_dataviz.py       | 26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
combo/apps/dataviz/forms.py
318 318

  
319 319
            # keep only same value fields
320 320
            for field, value in cell.filter_params.items():
321
                if field in dynamic_fields and value != dynamic_fields_values.get(field):
321
                if field in dynamic_fields and value != dynamic_fields_values.get(field, ''):
322 322
                    del dynamic_fields[field]
323 323

  
324 324
            if cell.time_range != first_cell.time_range:
tests/test_dataviz.py
2575 2575
    assert 'filter-form' in resp.form.fields
2576 2576
    assert 'filter-menu' in resp.form.fields
2577 2577

  
2578
    # add identitical cell
2579
    new_cell = ChartNgCell.objects.create(page=page, order=3, placeholder='content')
2580
    new_cell.statistic = Statistic.objects.get(slug='with-subfilter')
2581
    new_cell.save()
2582

  
2583
    resp = app.get('/manage/pages/%s/' % page.id)
2584
    resp.forms[2]['cdataviz_chartngcell-%s-form' % new_cell.id] = 'food-request'
2585
    manager_submit_cell(resp.forms[2])
2586

  
2587
    resp = app.get('/')
2588
    assert 'filter-form' in resp.form.fields
2589
    assert 'filter-menu' in resp.form.fields
2590

  
2591
    # submitting cell again changes nothing even if it introduces a difference in cells filter params
2592
    resp = app.get('/manage/pages/%s/' % page.id)
2593
    manager_submit_cell(resp.forms[2])
2594

  
2595
    cell.refresh_from_db()
2596
    assert cell.filter_params == {'form': 'food-request', 'other': ''}
2597
    new_cell.refresh_from_db()
2598
    assert new_cell.filter_params == {'form': 'food-request', 'other': '', 'menu': ''}
2599

  
2600
    resp = app.get('/')
2601
    assert 'filter-form' in resp.form.fields
2602
    assert 'filter-menu' in resp.form.fields
2603

  
2578 2604

  
2579 2605
@with_httmock(new_api_mock)
2580 2606
@pytest.mark.freeze_time('2021-10-06')
2581
-