|
31
|
1 |
import logging |
|
|
2 |
|
|
|
3 |
from notes.models import Note, Session |
|
|
4 |
from rest_framework import viewsets |
|
|
5 |
|
|
|
6 |
from ..permissions import NotePermission, SessionPermission |
|
|
7 |
from ..serializers.core import (DetailNoteSerializer, DetailSessionSerializer, |
|
|
8 |
ListNoteSerializer, ListSessionSerializer) |
|
|
9 |
|
|
|
10 |
logger = logging.getLogger(__name__) |
|
|
11 |
|
|
|
12 |
|
|
|
13 |
class SessionViewSet(viewsets.ModelViewSet): |
|
|
14 |
""" |
|
|
15 |
API endpoint that allow sessions ro be viewed or edited |
|
|
16 |
""" |
|
|
17 |
serializer_class = ListSessionSerializer |
|
|
18 |
lookup_field = 'ext_id' |
|
|
19 |
|
|
|
20 |
serializers = { |
|
|
21 |
'list': ListSessionSerializer, |
|
|
22 |
'retrieve': DetailSessionSerializer, |
|
|
23 |
} |
|
|
24 |
|
|
|
25 |
permission_classes = (SessionPermission,) |
|
|
26 |
|
|
|
27 |
def get_serializer_class(self): |
|
|
28 |
return self.serializers.get(self.action, ListSessionSerializer) |
|
|
29 |
|
|
|
30 |
def get_queryset(self): |
|
|
31 |
return Session.objects.filter(owner=self.request.user) |
|
|
32 |
|
|
|
33 |
|
|
|
34 |
class NoteViewSet(viewsets.ModelViewSet): |
|
|
35 |
|
|
|
36 |
serializers = { |
|
|
37 |
'list': ListNoteSerializer, |
|
|
38 |
'retrieve': DetailNoteSerializer, |
|
|
39 |
'create': DetailNoteSerializer, |
|
|
40 |
'update': DetailNoteSerializer, |
|
|
41 |
} |
|
|
42 |
lookup_field = 'ext_id' |
|
|
43 |
|
|
|
44 |
permission_classes = (NotePermission,) |
|
|
45 |
|
|
|
46 |
def get_serializer_class(self): |
|
|
47 |
return self.serializers.get(self.action, ListNoteSerializer) |
|
|
48 |
|
|
|
49 |
def get_queryset(self): |
|
|
50 |
return Note.objects.filter( |
|
|
51 |
session__ext_id=self.kwargs['session_ext_id'], |
|
|
52 |
session__owner=self.request.user) |