The API now supports filtering docs by tag & correspondent, as well as ordering

This commit is contained in:
Daniel Quinn
2016-03-12 20:45:13 +00:00
parent f764f5cb7b
commit 8c5cb163a1
3 changed files with 112 additions and 49 deletions

View File

@@ -13,7 +13,7 @@ from rest_framework.viewsets import (
from paperless.db import GnuPG
from .filters import DocumentFilter, CorrespondentFilter, TagFilter
from .filters import DocumentFilterSet, CorrespondentFilterSet, TagFilterSet
from .forms import UploadForm
from .models import Correspondent, Tag, Document, Log
from .serialisers import (
@@ -94,8 +94,9 @@ class CorrespondentViewSet(ModelViewSet):
serializer_class = CorrespondentSerializer
pagination_class = StandardPagination
permission_classes = (IsAuthenticated,)
filter_backends = (filters.DjangoFilterBackend,)
filter_class = CorrespondentFilter
filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter)
filter_class = CorrespondentFilterSet
ordering_fields = ("name", "slug")
class TagViewSet(ModelViewSet):
@@ -104,8 +105,9 @@ class TagViewSet(ModelViewSet):
serializer_class = TagSerializer
pagination_class = StandardPagination
permission_classes = (IsAuthenticated,)
filter_backends = (filters.DjangoFilterBackend,)
filter_class = TagFilter
filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter)
filter_class = TagFilterSet
ordering_fields = ("name", "slug")
class DocumentViewSet(RetrieveModelMixin,
@@ -118,9 +120,14 @@ class DocumentViewSet(RetrieveModelMixin,
serializer_class = DocumentSerializer
pagination_class = StandardPagination
permission_classes = (IsAuthenticated,)
filter_backends = (filters.DjangoFilterBackend, filters.SearchFilter)
filter_class = DocumentFilter
filter_backends = (
filters.DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter
)
filter_class = DocumentFilterSet
search_fields = ("title", "correspondent__name", "content")
ordering_fields = ("id", "title", "correspondent__name")
class LogViewSet(ReadOnlyModelViewSet):
@@ -129,4 +136,5 @@ class LogViewSet(ReadOnlyModelViewSet):
serializer_class = LogSerializer
pagination_class = StandardPagination
permission_classes = (IsAuthenticated,)
filter_backends = (filters.DjangoFilterBackend,)
filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter)
ordering_fields = ("time",)