diff --git a/publik_django_templatetags/wcs/context_processors.py b/publik_django_templatetags/wcs/context_processors.py index b78607d..2338936 100644 --- a/publik_django_templatetags/wcs/context_processors.py +++ b/publik_django_templatetags/wcs/context_processors.py @@ -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 diff --git a/publik_django_templatetags/wcs/templatetags/wcs.py b/publik_django_templatetags/wcs/templatetags/wcs.py index 57669ca..d8b1586 100644 --- a/publik_django_templatetags/wcs/templatetags/wcs.py +++ b/publik_django_templatetags/wcs/templatetags/wcs.py @@ -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) diff --git a/tests/test_wcs.py b/tests/test_wcs.py index 250c3bc..fa8a0b7 100644 --- a/tests/test_wcs.py +++ b/tests/test_wcs.py @@ -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 }}')