Commit f17121fd authored by Rafal's avatar Rafal

Add event and discussion filters by tag name

parent e71e0504
......@@ -26,6 +26,8 @@ router.register(r'user_event_request', user_views.UserEventRequestViewSet)
router.register(r'user_event', user_views.UserEventViewSet)
router.register(r'user_api', user_views.UserAPIViewSet)
router.register(r'tag_api', tag_views.TagApiViewSet)
router.register(r'tag_event', tag_views.TagEventViewSet)
router.register(r'tag_discussion', tag_views.TagDiscussionViewSet)
......
from rest_framework import viewsets, permissions
from app.API.models import API
from app.API.serializers import APISerializer
from app.Discussion.models import Discussion
from app.Discussion.serializers import DiscussionSerializer
from app.Event.models import Event
from app.Event.serializers import EventSerializer
from app.Tag.models import Tag
from app.Tag.serializers import TagSerializer
from django.shortcuts import get_object_or_404
......@@ -33,3 +37,40 @@ class TagApiViewSet(viewsets.ModelViewSet):
page = self.paginate_queryset(queryset)
serializer = APISerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data)
class TagEventViewSet(viewsets.ModelViewSet):
"""
API for articles
"""
queryset = Tag.objects.all()
serializer_class = TagSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def list(self, request, *args, **kwargs):
return Response(status=rest_framework.status.HTTP_400_BAD_REQUEST, data={"Request name of tag! Provide it by '../tag_name/"})
def retrieve(self, request, pk):
tag = get_object_or_404(self.queryset, name__iexact=pk)
queryset = Event.objects.filter(tag=tag)
page = self.paginate_queryset(queryset)
serializer = EventSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data)
class TagDiscussionViewSet(viewsets.ModelViewSet):
"""
API for articles
"""
queryset = Tag.objects.all()
serializer_class = TagSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def list(self, request, *args, **kwargs):
return Response(status=rest_framework.status.HTTP_400_BAD_REQUEST, data={"Request name of tag! Provide it by '../tag_name/"})
def retrieve(self, request, pk):
tag = get_object_or_404(self.queryset, name__iexact=pk)
queryset = Discussion.objects.filter(tag=tag)
page = self.paginate_queryset(queryset)
serializer = DiscussionSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment