wcs: add filter_by_user filter (#49406)
This commit is contained in:
parent
1ec70f4b16
commit
1a31eea2e3
|
@ -73,6 +73,12 @@ class LazyCardDefObjectsManager(object):
|
|||
qs._filters['filter-%s' % self.pending_attr] = value
|
||||
return qs
|
||||
|
||||
def filter_by_user(self, user):
|
||||
qs = self._clone()
|
||||
if user and user.is_authenticated and user.get_name_id():
|
||||
qs._filters['filter-user-uuid'] = user.get_name_id()
|
||||
return qs
|
||||
|
||||
def _get_results_from_wcs(self):
|
||||
service = get_wcs_services().get(self._service_key)
|
||||
if not service:
|
||||
|
|
|
@ -43,3 +43,8 @@ def filter_by(queryset, attribute):
|
|||
@register.filter
|
||||
def filter_value(queryset, value):
|
||||
return queryset.apply_filter_value(value)
|
||||
|
||||
|
||||
@register.filter
|
||||
def filter_by_user(queryset, user):
|
||||
return queryset.filter_by_user(user)
|
||||
|
|
|
@ -222,3 +222,25 @@ def test_filter(mock_send, context, nocache):
|
|||
t = Template('{% load wcs %}{{ cards|objects:"foo"|filter_by:"foo"|filter_value:None|list }}')
|
||||
t.render(context)
|
||||
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_user(mock_send, context, nocache):
|
||||
t = Template('{% load wcs %}{{ cards|objects:"foo"|filter_by_user:request.user|list }}')
|
||||
t.render(context)
|
||||
assert 'filter-user-uuid' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
context['request'].user = MockAnonymousUser()
|
||||
mock_send.reset_mock()
|
||||
t.render(context)
|
||||
assert 'filter-user-uuid' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
context['request'].user = MockUser()
|
||||
mock_send.reset_mock()
|
||||
t.render(context)
|
||||
assert 'filter-user-uuid' not in mock_send.call_args_list[0][0][0].url
|
||||
|
||||
context['request'].user = MockUserWithNameId()
|
||||
mock_send.reset_mock()
|
||||
t.render(context)
|
||||
assert 'filter-user-uuid=xyz&' in mock_send.call_args_list[0][0][0].url
|
||||
|
|
Loading…
Reference in New Issue