| author | ymh <ymh.work@gmail.com> |
| Tue, 18 Jul 2017 17:08:27 +0200 | |
| changeset 117 | 9864fe2067cd |
| parent 99 | 18fa4a1fa9e9 |
| child 119 | 8ff8e2aee0f9 |
| permissions | -rw-r--r-- |
|
117
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
1 |
""" |
|
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
2 |
Core viewsets |
|
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
3 |
""" |
| 31 | 4 |
import logging |
5 |
||
6 |
from notes.models import Note, Session |
|
|
117
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
7 |
from rest_framework import viewsets |
| 31 | 8 |
|
9 |
from ..permissions import NotePermission, SessionPermission |
|
|
117
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
10 |
from ..serializers.core import (DetailNoteSerializer, UpdateNoteSerializer, DetailSessionSerializer, |
|
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
11 |
CreateNoteSerializer, ListNoteSerializer, ListSessionSerializer, |
|
9864fe2067cd
Add api endpoints for group management
ymh <ymh.work@gmail.com>
parents:
99
diff
changeset
|
12 |
CreateSessionSerializer) |
| 31 | 13 |
|
14 |
logger = logging.getLogger(__name__) |
|
15 |
||
16 |
||
17 |
class SessionViewSet(viewsets.ModelViewSet): |
|
18 |
""" |
|
19 |
API endpoint that allow sessions ro be viewed or edited |
|
20 |
""" |
|
21 |
serializer_class = ListSessionSerializer |
|
22 |
lookup_field = 'ext_id' |
|
23 |
||
24 |
serializers = { |
|
25 |
'list': ListSessionSerializer, |
|
26 |
'retrieve': DetailSessionSerializer, |
|
|
68
6e18b31b0ad5
Correct session creation and add offline to the persisted state
ymh <ymh.work@gmail.com>
parents:
31
diff
changeset
|
27 |
'create': CreateSessionSerializer, |
| 31 | 28 |
} |
29 |
||
30 |
permission_classes = (SessionPermission,) |
|
31 |
||
32 |
def get_serializer_class(self): |
|
33 |
return self.serializers.get(self.action, ListSessionSerializer) |
|
34 |
||
35 |
def get_queryset(self): |
|
36 |
return Session.objects.filter(owner=self.request.user) |
|
37 |
||
38 |
||
39 |
class NoteViewSet(viewsets.ModelViewSet): |
|
40 |
||
41 |
serializers = { |
|
42 |
'list': ListNoteSerializer, |
|
43 |
'retrieve': DetailNoteSerializer, |
|
|
74
043477fd5c5c
add api call to save notes. internally use ts for time data for notes and session
ymh <ymh.work@gmail.com>
parents:
68
diff
changeset
|
44 |
'create': CreateNoteSerializer, |
|
83
76a4e4b11762
add server request for note update and delete
ymh <ymh.work@gmail.com>
parents:
74
diff
changeset
|
45 |
'update': UpdateNoteSerializer, |
| 31 | 46 |
} |
47 |
lookup_field = 'ext_id' |
|
48 |
||
49 |
permission_classes = (NotePermission,) |
|
50 |
||
51 |
def get_serializer_class(self): |
|
52 |
return self.serializers.get(self.action, ListNoteSerializer) |
|
53 |
||
54 |
def get_queryset(self): |
|
55 |
return Note.objects.filter( |
|
56 |
session__ext_id=self.kwargs['session_ext_id'], |
|
57 |
session__owner=self.request.user) |