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( |