wcs: escape option ids in card cell filters (#78004)
gitea/combo/pipeline/head This commit looks good
Details
gitea/combo/pipeline/head This commit looks good
Details
This commit is contained in:
parent
c85578186c
commit
221af86bd9
|
@ -73,6 +73,8 @@ def get_filter_attrs(cell, card):
|
|||
if not isinstance(value, list):
|
||||
value = [value]
|
||||
|
||||
value = [escape(x) for x in value]
|
||||
|
||||
attrs[filter_id] = json.dumps(value)
|
||||
|
||||
return mark_safe(' '.join("data-%s='%s'" % (filter_id, value) for filter_id, value in attrs.items()))
|
||||
|
|
|
@ -1593,8 +1593,8 @@ def test_card_cell_table_mode_render_filters(mock_send, context, app):
|
|||
assert len(resp.form.fields) == 1
|
||||
assert resp.form['related'].options == [('13', False, 'Abc'), ('42', False, 'Foo Bar')]
|
||||
assert [x.attrib for x in resp.pyquery('.list-of-cards li')] == [
|
||||
{'data-related': '[42]'},
|
||||
{'data-related': '[13]'},
|
||||
{'data-related': '["42"]'},
|
||||
{'data-related': '["13"]'},
|
||||
{},
|
||||
]
|
||||
|
||||
|
@ -1605,12 +1605,12 @@ def test_card_cell_table_mode_render_filters(mock_send, context, app):
|
|||
assert len(resp.form.fields) == 2
|
||||
assert resp.form['fieldj'].options == [
|
||||
('first value', False, 'First Value'),
|
||||
('second value', False, 'Second Value'),
|
||||
('second value \'', False, 'Second Value \''),
|
||||
('third value', False, 'Third Value'),
|
||||
]
|
||||
assert [x.attrib for x in resp.pyquery('.list-of-cards li')] == [
|
||||
{'data-related': '[42]', 'data-fieldj': '["first value", "second value"]'},
|
||||
{'data-related': '[13]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{'data-related': '["42"]', 'data-fieldj': '["first value", "second value \'"]'},
|
||||
{'data-related': '["13"]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{},
|
||||
]
|
||||
|
||||
|
@ -1625,8 +1625,8 @@ def test_card_cell_table_mode_render_filters(mock_send, context, app):
|
|||
resp = TestResponse(cell.render(context))
|
||||
assert len(resp.form.fields) == 2
|
||||
assert [x.attrib for x in resp.pyquery('table tbody tr')] == [
|
||||
{'data-related': '[42]', 'data-fieldj': '["first value", "second value"]'},
|
||||
{'data-related': '[13]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{'data-related': '["42"]', 'data-fieldj': '["first value", "second value \'"]'},
|
||||
{'data-related': '["13"]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{},
|
||||
]
|
||||
|
||||
|
@ -3260,8 +3260,8 @@ def test_card_cell_card_mode_render_filters(mock_send, context, app):
|
|||
attributes = [x.attrib for x in resp.pyquery('.cell--body')]
|
||||
data_attributes = [{k: v for k, v in attr.items() if k.startswith('data')} for attr in attributes]
|
||||
assert data_attributes == [
|
||||
{'data-related': '[42]'},
|
||||
{'data-related': '[13]'},
|
||||
{'data-related': '["42"]'},
|
||||
{'data-related': '["13"]'},
|
||||
{},
|
||||
]
|
||||
|
||||
|
@ -3272,15 +3272,15 @@ def test_card_cell_card_mode_render_filters(mock_send, context, app):
|
|||
assert len(resp.form.fields) == 2
|
||||
assert resp.form['fieldj'].options == [
|
||||
('first value', False, 'First Value'),
|
||||
('second value', False, 'Second Value'),
|
||||
('second value \'', False, 'Second Value \''),
|
||||
('third value', False, 'Third Value'),
|
||||
]
|
||||
|
||||
attributes = [x.attrib for x in resp.pyquery('.cell--body')]
|
||||
data_attributes = [{k: v for k, v in attr.items() if k.startswith('data')} for attr in attributes]
|
||||
assert data_attributes == [
|
||||
{'data-related': '[42]', 'data-fieldj': '["first value", "second value"]'},
|
||||
{'data-related': '[13]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{'data-related': '["42"]', 'data-fieldj': '["first value", "second value \'"]'},
|
||||
{'data-related': '["13"]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{},
|
||||
]
|
||||
|
||||
|
@ -3298,8 +3298,8 @@ def test_card_cell_card_mode_render_filters(mock_send, context, app):
|
|||
attributes = [x.attrib for x in resp.pyquery('.cell--body')]
|
||||
data_attributes = [{k: v for k, v in attr.items() if k.startswith('data')} for attr in attributes]
|
||||
assert data_attributes == [
|
||||
{'data-related': '[42]', 'data-fieldj': '["first value", "second value"]'},
|
||||
{'data-related': '[13]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{'data-related': '["42"]', 'data-fieldj': '["first value", "second value \'"]'},
|
||||
{'data-related': '["13"]', 'data-fieldj': '["first value", "third value"]'},
|
||||
{},
|
||||
]
|
||||
|
||||
|
|
|
@ -125,8 +125,8 @@ WCS_CARDS_DATA = {
|
|||
'fieldg': 'test@localhost',
|
||||
'fieldh': 'https://www.example.net/',
|
||||
'fieldi': "<p>lorem<strong>ipsum</p><p>hello'world</p>",
|
||||
'fieldj': 'First Value, Second Value',
|
||||
'fieldj_raw': ['first value', 'second value'],
|
||||
'fieldj': 'First Value, Second Value \'',
|
||||
'fieldj_raw': ['first value', 'second value \''],
|
||||
'fieldk': 'test',
|
||||
'related': 'Foo Bar',
|
||||
'related_raw': 42,
|
||||
|
|
Loading…
Reference in New Issue