wcs: add |filter_by_internal_id filter (#59801)
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 2021-12-17 14:49:41 +01:00
parent 958bd2128c
commit 1c5cd8d562
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 33 additions and 0 deletions

View File

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

View File

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

View File

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