src/notes/api/views/core.py
changeset 128 34a75bd8d0b9
parent 120 892980a3af09
child 132 906a6c7c7943
equal deleted inserted replaced
127:006c5270128c 128:34a75bd8d0b9
     3 """
     3 """
     4 import datetime
     4 import datetime
     5 import logging
     5 import logging
     6 
     6 
     7 from django.utils import timezone
     7 from django.utils import timezone
       
     8 from django_filters.rest_framework import DjangoFilterBackend
     8 from notes.models import Note, Session
     9 from notes.models import Note, Session
     9 from rest_framework import viewsets
    10 from rest_framework import viewsets
    10 
    11 
       
    12 from ..filters import NoteFilterSet, SessionFilterSet
    11 from ..permissions import NotePermission, SessionPermission
    13 from ..permissions import NotePermission, SessionPermission
    12 from ..serializers.core import (CreateNoteSerializer, CreateSessionSerializer,
    14 from ..serializers.core import (CreateNoteSerializer, CreateSessionSerializer,
    13                                 DetailNoteSerializer, DetailSessionSerializer,
    15                                 DetailNoteSerializer, DetailSessionSerializer,
    14                                 ListNoteSerializer, ListSessionSerializer,
    16                                 ListNoteSerializer, ListSessionSerializer,
    15                                 RootDetailNoteSerializer,
    17                                 RootDetailNoteSerializer, UpdateNoteSerializer)
    16                                 RootListNoteSerializer, UpdateNoteSerializer)
       
    17 
    18 
    18 logger = logging.getLogger(__name__)
    19 logger = logging.getLogger(__name__)
    19 
    20 
    20 
    21 
    21 class SessionViewSet(viewsets.ModelViewSet):
    22 class SessionViewSet(viewsets.ModelViewSet):
    30         'retrieve':  DetailSessionSerializer,
    31         'retrieve':  DetailSessionSerializer,
    31         'create':  CreateSessionSerializer,
    32         'create':  CreateSessionSerializer,
    32     }
    33     }
    33 
    34 
    34     permission_classes = (SessionPermission,)
    35     permission_classes = (SessionPermission,)
       
    36 
       
    37     filter_backends = (DjangoFilterBackend,)
       
    38     filter_class = SessionFilterSet
    35 
    39 
    36     def get_serializer_class(self):
    40     def get_serializer_class(self):
    37         return self.serializers.get(self.action, ListSessionSerializer)
    41         return self.serializers.get(self.action, ListSessionSerializer)
    38 
    42 
    39     def get_queryset(self):
    43     def get_queryset(self):
    75     lookup_field = 'ext_id'
    79     lookup_field = 'ext_id'
    76 
    80 
    77     permission_classes = (NotePermission,)
    81     permission_classes = (NotePermission,)
    78     serializer_class = RootDetailNoteSerializer
    82     serializer_class = RootDetailNoteSerializer
    79 
    83 
       
    84     filter_backends = (DjangoFilterBackend,)
       
    85     filter_class = NoteFilterSet
       
    86 
    80     def get_queryset(self):
    87     def get_queryset(self):
    81         queryset = Note.objects.filter(session__owner=self.request.user).order_by('created')
    88         queryset = Note.objects.filter(session__owner=self.request.user).order_by('created')
    82         modified_since_str = self.request.query_params.get('modified_since', None)
    89         modified_since_str = self.request.query_params.get('modified_since', None)
    83         if modified_since_str is not None:
    90         if modified_since_str is not None:
    84             modified_since = datetime.datetime.fromtimestamp(
    91             modified_since = datetime.datetime.fromtimestamp(