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