wcs: add |filter_by_number filter (#58782)
This commit is contained in:
parent
bc5dcf738c
commit
2c87ba2349
|
@ -99,6 +99,12 @@ class LazyCardDefObjectsManager:
|
|||
qs._filters['filter-internal-id'] = internal_id
|
||||
return qs
|
||||
|
||||
def filter_by_number(self, number):
|
||||
qs = self._clone()
|
||||
if number:
|
||||
qs._filters['filter-number'] = number
|
||||
return qs
|
||||
|
||||
def filter_by_user(self, user):
|
||||
qs = self._clone()
|
||||
if user and user.is_authenticated and user.get_name_id():
|
||||
|
|
|
@ -67,6 +67,11 @@ def filter_by_internal_id(queryset, internal_id):
|
|||
return queryset.filter_by_internal_id(internal_id)
|
||||
|
||||
|
||||
@register.filter
|
||||
def filter_by_number(queryset, number):
|
||||
return queryset.filter_by_number(number)
|
||||
|
||||
|
||||
@register.filter
|
||||
def filter_by_user(queryset, user):
|
||||
return queryset.filter_by_user(user)
|
||||
|
|
|
@ -289,6 +289,28 @@ def test_filter_by_internal_id(mock_send, context, nocache):
|
|||
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_number(mock_send, context, nocache):
|
||||
t = Template('{{ cards|objects:"foo"|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-number' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
mock_send.reset_mock()
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_number:None|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-number' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
mock_send.reset_mock()
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_number:""|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-number' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
mock_send.reset_mock()
|
||||
t = Template('{{ cards|objects:"foo"|filter_by_number:"42-35"|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-number=42-35&' 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