pulseapi/issues/views.py (22 lines of code) (raw):
"""
Show all issues and a set with descriptions
"""
from rest_framework.generics import ListAPIView, RetrieveAPIView
from rest_framework import filters
from pulseapi.issues.serializers import (
IssueSerializer,
IssueDetailSerializer,
)
from pulseapi.issues.models import Issue
class IssueListView(ListAPIView):
"""
A view to retrieve all Issues.
Append `/{issueName}` to URL to get more details for an issue
Editable only via django admin
"""
queryset = Issue.objects.public()
serializer_class = IssueSerializer
filter_backends = (
filters.SearchFilter,
)
search_fields = (
'^name',
)
class IssueDetailView(RetrieveAPIView):
"""
A view to give the description (and potentially future details) of an issue
"""
pagination_class = None
serializer_class = IssueDetailSerializer
lookup_field = 'name'
def get_queryset(self):
return Issue.objects.public().slug(self.kwargs['name'])