wcs: add filters to get only fields, evolution, etc (#71299)

added filters:
- |include_fields
- |include_evolutions
- |include_roles
- |include_submission
- |include_workflow
- |include_workflow_data
This commit is contained in:
Lauréline Guérin 2022-11-15 09:05:30 +01:00
parent c5b89d13a2
commit 77b277fc63
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 74 additions and 0 deletions

View File

@ -69,6 +69,36 @@ class LazyCardDefObjectsManager:
qs._filters['full'] = 'on'
return qs
def include_fields(self):
qs = self._clone()
qs._filters['include-fields'] = 'on'
return qs
def include_evolution(self):
qs = self._clone()
qs._filters['include-evolution'] = 'on'
return qs
def include_roles(self):
qs = self._clone()
qs._filters['include-roles'] = 'on'
return qs
def include_submission(self):
qs = self._clone()
qs._filters['include-submission'] = 'on'
return qs
def include_workflow(self):
qs = self._clone()
qs._filters['include-workflow'] = 'on'
return qs
def include_workflow_data(self):
qs = self._clone()
qs._filters['include-workflow-data'] = 'on'
return qs
def access_control(self, user):
qs = self._clone()
qs._user = user

View File

@ -34,6 +34,36 @@ def get_full(queryset):
return queryset.get_full()
@register.filter
def include_fields(queryset):
return queryset.include_fields()
@register.filter
def include_evolution(queryset):
return queryset.include_evolution()
@register.filter
def include_roles(queryset):
return queryset.include_roles()
@register.filter
def include_submission(queryset):
return queryset.include_submission()
@register.filter
def include_workflow(queryset):
return queryset.include_workflow()
@register.filter
def include_workflow_data(queryset):
return queryset.include_workflow_data()
@register.filter
def access_control(queryset, user):
return queryset.access_control(user)

View File

@ -146,6 +146,20 @@ def test_full(mock_send, context, nocache):
assert 'full=on&' in mock_send.call_args_list[0][0][0].url
@mock.patch('requests.Session.send', side_effect=mocked_requests_send)
def test_include_filters(mock_send, context, nocache):
for part in ['fields', 'evolution', 'roles', 'submission', 'workflow', 'workflow_data']:
_filter = 'include_%s' % part
param = _filter.replace('_', '-')
t = Template('{{ cards|objects:"foo"|list }}')
t.render(context)
assert '%s=on&' % param not in mock_send.call_args_list[0][0][0].url
mock_send.reset_mock()
t = Template('{{ cards|objects:"foo"|%s|list }}' % _filter)
t.render(context)
assert '%s=on&' % param in mock_send.call_args_list[0][0][0].url
@mock.patch('requests.Session.send', side_effect=mocked_requests_send)
def test_errors(mock_send, context, nocache):
t = Template('{{ cards|objects:"foo"|list }}')