Files
mayan-edms/mayan/apps/dynamic_search/api_views.py
Roberto Rosario 68f3c6eee7 PEP8 cleanups.
2015-08-19 14:50:44 -04:00

61 lines
1.7 KiB
Python

from __future__ import unicode_literals
from rest_framework import generics
from rest_framework.exceptions import ParseError
from rest_api.filters import MayanObjectPermissionsFilter
from .classes import SearchModel
from .filters import RecentSearchUserFilter
from .models import RecentSearch
from .serializers import RecentSearchSerializer
class APIRecentSearchListView(generics.ListAPIView):
"""
Returns a list of all the recent searches.
"""
filter_backends = (RecentSearchUserFilter,)
queryset = RecentSearch.objects.all()
serializer_class = RecentSearchSerializer
class APIRecentSearchView(generics.RetrieveDestroyAPIView):
"""
Returns the selected recent search details.
"""
filter_backends = (RecentSearchUserFilter,)
queryset = RecentSearch.objects.all()
serializer_class = RecentSearchSerializer
class APISearchView(generics.ListAPIView):
"""
Perform a search operaton
q -- Term that will be used for the search.
"""
filter_backends = (MayanObjectPermissionsFilter,)
def get_queryset(self):
search_class = self.get_search_class()
if search_class.permission:
self.mayan_object_permissions = {'GET': (search_class.permission,)}
try:
queryset, ids, timedelta = search_class.search(
query_string=self.request.GET, user=self.request.user
)
except Exception as exception:
raise ParseError(unicode(exception))
return queryset
def get_search_class(self):
return SearchModel.get('documents.Document')
def get_serializer_class(self):
return self.get_search_class().serializer