wcs: add status to card cell available filters (#78065)
parent
71aa067da8
commit
ed8a375d20
|
@ -178,7 +178,7 @@ class WcsCardCellFiltersForm(forms.Form):
|
|||
return
|
||||
|
||||
for filter_id in cell.filters:
|
||||
if filter_id == 'status':
|
||||
if filter_id == 'status' and 'workflow' in cell.cached_json:
|
||||
options = [(x['id'], x['name']) for x in cell.cached_json['workflow']['statuses']]
|
||||
self.fields[filter_id] = forms.MultipleChoiceField(
|
||||
label=_('Status'), choices=options, widget=MultipleSelect2Widget
|
||||
|
|
|
@ -66,7 +66,7 @@ def get_filter_attrs(cell, card):
|
|||
|
||||
attrs = {}
|
||||
for filter_id in cell.filters:
|
||||
if filter_id == 'status':
|
||||
if filter_id == 'status' and 'workflow' in card:
|
||||
value = card['workflow']['real_status']['id']
|
||||
else:
|
||||
value = card['fields'].get(filter_id + '_raw')
|
||||
|
|
|
@ -748,7 +748,7 @@ def test_manager_card_cell_filters(mock_send, app, admin_user):
|
|||
# only item and items field with varnames are allowed
|
||||
assert resp.form['c%s-filters' % cell.get_reference()].options == [
|
||||
('', True, '---------'),
|
||||
('status', 'Status'),
|
||||
('status', False, 'Status'),
|
||||
('fieldj', False, 'Field J'),
|
||||
('related', False, 'Related'),
|
||||
]
|
||||
|
@ -1599,19 +1599,28 @@ def test_card_cell_table_mode_render_filters(mock_send, context, app):
|
|||
{},
|
||||
]
|
||||
|
||||
cell.filters = ['related', 'fieldj']
|
||||
cell.filters = ['related', 'fieldj', 'status']
|
||||
cell.save()
|
||||
|
||||
resp = TestResponse(cell.render(context))
|
||||
assert len(resp.form.fields) == 2
|
||||
assert len(resp.form.fields) == 3
|
||||
assert resp.form['fieldj'].options == [
|
||||
('first value', False, 'First Value'),
|
||||
('second value \'', False, 'Second Value \''),
|
||||
('third value', False, 'Third Value'),
|
||||
]
|
||||
assert resp.form['status'].options == [('recorded', False, 'Recorded'), ('deleted', False, 'Deleted')]
|
||||
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-status': '["recorded"]',
|
||||
},
|
||||
{
|
||||
'data-related': '["13"]',
|
||||
'data-fieldj': '["first value", "third value"]',
|
||||
'data-status': '["deleted"]',
|
||||
},
|
||||
{},
|
||||
]
|
||||
|
||||
|
@ -1621,6 +1630,7 @@ def test_card_cell_table_mode_render_filters(mock_send, context, app):
|
|||
{'varname': 'fieldb', 'field_content': 'value', 'display_mode': 'title'},
|
||||
]
|
||||
}
|
||||
cell.filters = ['related', 'fieldj']
|
||||
cell.save()
|
||||
|
||||
resp = TestResponse(cell.render(context))
|
||||
|
|
|
@ -138,6 +138,10 @@ WCS_CARDS_DATA = {
|
|||
'first_name': 'User',
|
||||
'last_name': 'Foo Bar',
|
||||
},
|
||||
'workflow': {
|
||||
'real_status': {'id': 'recorded', 'name': 'Recorded'},
|
||||
'status': {'id': 'recorded', 'name': 'Recorded'},
|
||||
},
|
||||
},
|
||||
{
|
||||
'id': 12,
|
||||
|
@ -152,6 +156,10 @@ WCS_CARDS_DATA = {
|
|||
'related': 'Abc',
|
||||
'related_raw': 13,
|
||||
},
|
||||
'workflow': {
|
||||
'real_status': {'id': 'deleted', 'name': 'Deleted'},
|
||||
'status': {'id': 'deleted', 'name': 'Deleted'},
|
||||
},
|
||||
},
|
||||
{
|
||||
'id': 13,
|
||||
|
@ -285,6 +293,27 @@ WCS_CARDDEF_SCHEMAS = {
|
|||
{'label': 'Last name', 'varname': 'last_name', 'type': 'string'},
|
||||
],
|
||||
},
|
||||
'workflow': {
|
||||
'fields': [],
|
||||
'functions': {'_editor': 'Editor', '_viewer': 'Viewer'},
|
||||
'name': 'default',
|
||||
'statuses': [
|
||||
{
|
||||
'endpoint': False,
|
||||
'forced_endpoint': False,
|
||||
'id': 'recorded',
|
||||
'name': 'Recorded',
|
||||
'waitpoint': True,
|
||||
},
|
||||
{
|
||||
'endpoint': True,
|
||||
'forced_endpoint': False,
|
||||
'id': 'deleted',
|
||||
'name': 'Deleted',
|
||||
'waitpoint': True,
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
'card_a': {
|
||||
'name': 'Card A',
|
||||
|
|
Loading…
Reference in New Issue