wcs: add |filter_by_internal_id filter (#59801)
This commit is contained in:
parent
958bd2128c
commit
1c5cd8d562
|
@ -86,6 +86,12 @@ class LazyCardDefObjectsManager:
|
|||
qs._filters['filter-%s' % self.pending_attr] = value
|
||||
return qs
|
||||
|
||||
def filter_by_internal_id(self, internal_id):
|
||||
qs = self._clone()
|
||||
if internal_id:
|
||||
qs._filters['filter-internal-id'] = internal_id
|
||||
return qs
|
||||
|
||||
def filter_by_user(self, user):
|
||||
qs = self._clone()
|
||||
if user and user.is_authenticated and user.get_name_id():
|
||||
|
|
|
@ -62,6 +62,11 @@ def filter_value(queryset, value):
|
|||
return queryset.apply_filter_value(value)
|
||||
|
||||
|
||||
@register.filter
|
||||
def filter_by_internal_id(queryset, internal_id):
|
||||
return queryset.filter_by_internal_id(internal_id)
|
||||
|
||||
|
||||
@register.filter
|
||||
def filter_by_user(queryset, user):
|
||||
return queryset.filter_by_user(user)
|
||||
|
|
|
@ -267,6 +267,28 @@ def test_filter(mock_send, context, nocache):
|
|||
assert 'filter-foo=&' in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
|
||||
@mock.patch('combo.apps.wcs.models.requests.send', side_effect=mocked_requests_send)
|
||||
def test_filter_by_internal_id(mock_send, context, nocache):
|
||||
t = Template('{{ cards|objects:"foo"|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-internal-id' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
mock_send.reset_mock()
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_internal_id:None|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-internal-id' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
mock_send.reset_mock()
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_internal_id:""|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-internal-id' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
mock_send.reset_mock()
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_internal_id:"42"|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-internal-id=42&' in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
|
||||
@mock.patch('combo.apps.wcs.models.requests.send', side_effect=mocked_requests_send)
|
||||
def test_filter_by_user(mock_send, context, nocache):
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_user:request.user|list }}')
|
||||
|
|
Loading…
Reference in New Issue