API: Add filters to questions view

This commit is contained in:
Raphael Michel
2018-04-24 18:33:57 +02:00
parent d25407e3b4
commit bee7314dd7
3 changed files with 41 additions and 1 deletions

View File

@@ -251,10 +251,17 @@ class ItemCategoryViewSet(viewsets.ModelViewSet):
super().perform_destroy(instance)
class QuestionFilter(FilterSet):
class Meta:
model = Question
fields = ['ask_during_checkin', 'required', 'identifier']
class QuestionViewSet(viewsets.ModelViewSet):
serializer_class = QuestionSerializer
queryset = Question.objects.none()
filter_backends = (OrderingFilter,)
filter_backends = (DjangoFilterBackend, OrderingFilter)
filter_class = QuestionFilter
ordering_fields = ('id', 'position')
ordering = ('position', 'id')
permission = 'can_change_items'

View File

@@ -1296,6 +1296,31 @@ def test_question_list(token_client, organizer, event, question, item):
assert resp.status_code == 200
assert [res] == resp.data['results']
resp = token_client.get('/api/v1/organizers/{}/events/{}/questions/?required=false'.format(
organizer.slug, event.slug
))
assert [res] == resp.data['results']
resp = token_client.get('/api/v1/organizers/{}/events/{}/questions/?ask_during_checkin=false'.format(
organizer.slug, event.slug
))
assert [res] == resp.data['results']
resp = token_client.get('/api/v1/organizers/{}/events/{}/questions/?identifier=ABC'.format(
organizer.slug, event.slug
))
assert [res] == resp.data['results']
resp = token_client.get('/api/v1/organizers/{}/events/{}/questions/?required=true'.format(
organizer.slug, event.slug
))
assert [] == resp.data['results']
resp = token_client.get('/api/v1/organizers/{}/events/{}/questions/?ask_during_checkin=true'.format(
organizer.slug, event.slug
))
assert [] == resp.data['results']
resp = token_client.get('/api/v1/organizers/{}/events/{}/questions/?identifier=DEF'.format(
organizer.slug, event.slug
))
assert [] == resp.data['results']
@pytest.mark.django_db
def test_question_detail(token_client, organizer, event, question, item):