wcs: add |filter_by_number filter (#58782)
gitea-wip/combo/pipeline/head There was a failure building this commit Details
gitea/combo/pipeline/head Something is wrong with the build of this commit Details

This commit is contained in:
Lauréline Guérin 2022-01-13 15:23:46 +01:00
parent bc5dcf738c
commit 2c87ba2349
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 33 additions and 0 deletions

View File

@ -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():

View File

@ -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)

View File

@ -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 }}')