44
55from . import serializers
66from . import models
7- from .permissions import IsLinkOwner , IsSubTopicLinkOwner , IsSubTopicOwner , IsTopicOwner , IsCurationOwner
7+ from .permissions import (
8+ IsLinkOwner ,
9+ IsSubTopicLinkOwner ,
10+ IsSubTopicOwner ,
11+ IsTopicOwner ,
12+ IsCurationOwner ,
13+ )
814
915from rest_framework .decorators import api_view
1016from rest_framework .response import Response
1117from rest_framework .reverse import reverse
1218
1319
14- @api_view ([' GET' ])
20+ @api_view ([" GET" ])
1521def api_root (request , format = None ):
16- return Response ({
17- 'subjects' : reverse ('subject-list' , request = request , format = format ),
18- 'curations' : reverse ('curation-list' , request = request , format = format )
19- })
20- class SubjectList (mixins .ListModelMixin ,
21- generics .GenericAPIView ):
22+ return Response (
23+ {
24+ "subjects" : reverse ("subject-list" , request = request , format = format ),
25+ "curations" : reverse ("curation-list" , request = request , format = format ),
26+ }
27+ )
28+
29+
30+ class SubjectList (mixins .ListModelMixin , generics .GenericAPIView ):
2231 queryset = models .Subject .objects .all ()
2332 serializer_class = serializers .SubjectSerializer
2433
2534 def get (self , request , * args , ** kwargs ):
2635 return self .list (request , * args , ** kwargs )
2736
2837
29- class SubjectDetail (mixins .RetrieveModelMixin ,
30- generics .GenericAPIView ):
38+ class SubjectDetail (mixins .RetrieveModelMixin , generics .GenericAPIView ):
3139 queryset = models .Subject .objects .all ()
3240 serializer_class = serializers .SubjectSerializer
3341
3442 def retrieve (self , request , * args , ** kwargs ):
3543 return self .create (request , * args , ** kwargs )
3644
3745
38- class CurationList (mixins .ListModelMixin ,
39- mixins .CreateModelMixin ,
40- generics .GenericAPIView ):
41-
42- queryset = models .Curation .objects .all ()
43- serializer_class = serializers .CurationSerializer
44- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
46+ class CurationList (
47+ mixins .ListModelMixin , mixins .CreateModelMixin , generics .GenericAPIView
48+ ):
49+ queryset = models .Curation .objects .all ()
50+ serializer_class = serializers .CurationSerializer
51+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
52+
53+ def get_queryset (self ):
54+ """
55+ Optionally restricts the returned purchases to a given user,
56+ by filtering against a `username` query parameter in the URL.
57+ """
58+ queryset = models .Curation .objects .all ()
59+ subject = self .request .query_params .get ("subject" )
60+ if subject is not None :
61+ queryset = queryset .filter (subject = subject )
62+ return queryset
63+
64+ def post (self , request , * args , ** kwargs ):
65+ return self .create (request , * args , ** kwargs )
4566
46- def get_queryset (self ):
47- """
48- Optionally restricts the returned purchases to a given user,
49- by filtering against a `username` query parameter in the URL.
50- """
51- queryset = models .Curation .objects .all ()
52- subject = self .request .query_params .get ('subject' )
53- if subject is not None :
54- queryset = queryset .filter (subject = subject )
55- return queryset
67+ def get (self , request , * args , ** kwargs ):
68+ return self .list (request , * args , ** kwargs )
5669
57- def post (self , request , * args , ** kwargs ):
58- return self . create ( request , * args , ** kwargs )
70+ def perform_create (self , serializer ):
71+ serializer . save ( owner = self . request . user )
5972
60- def get (self , request , * args , ** kwargs ):
61- return self .list (request , * args , ** kwargs )
62-
63- def perform_create (self , serializer ):
64- serializer .save (owner = self .request .user )
6573
74+ class CurationDetail (
75+ mixins .RetrieveModelMixin ,
76+ mixins .DestroyModelMixin ,
77+ mixins .UpdateModelMixin ,
78+ generics .GenericAPIView ,
79+ ):
80+ queryset = models .Curation .objects .all ()
81+ serializer_class = serializers .CurationSerializer
6682
67- class CurationDetail (mixins .RetrieveModelMixin ,
68- mixins .DestroyModelMixin ,
69- mixins .UpdateModelMixin ,
70- generics .GenericAPIView ):
83+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
7184
72- queryset = models . Curation . objects . all ()
73- serializer_class = serializers . CurationSerializer
85+ def get ( self , request , * args , ** kwargs ):
86+ return self . retrieve ( request , * args , ** kwargs )
7487
75- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsCurationOwner ]
88+ def put (self , request , * args , ** kwargs ):
89+ return self .update (request , * args , ** kwargs )
7690
77- def get (self , request , * args , ** kwargs ):
78- return self .retrieve (request , * args , ** kwargs )
79-
80- def put (self , request , * args , ** kwargs ):
81- return self .update (request , * args , ** kwargs )
82-
83- def delete (self , request , * args , ** kwargs ):
84- return super ().destroy (request , * args , ** kwargs )
91+ def delete (self , request , * args , ** kwargs ):
92+ return super ().destroy (request , * args , ** kwargs )
8593
8694
8795class TopicCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
96+ queryset = models .Topic .objects .all ()
97+ serializer_class = serializers .TopicSerializer
98+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
99+
100+ def post (self , request , * args , ** kwargs ):
101+ return self .create (request , * args , ** kwargs )
88102
89- queryset = models .Topic .objects .all ()
90- serializer_class = serializers .TopicSerializer
91- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
92103
93- def post (self , request , * args , ** kwargs ):
94- return self .create (request , * args , ** kwargs )
104+ class TopicDetail (
105+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
106+ ):
107+ queryset = models .Topic .objects .all ()
108+ serializer_class = serializers .TopicSerializer
109+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
95110
96- class TopicDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
97- queryset = models .Topic .objects .all ()
98- serializer_class = serializers .TopicSerializer
99- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsTopicOwner ]
111+ def delete (self , request , * args , ** kwargs ):
112+ return super ().destroy (request , * args , ** kwargs )
100113
101- def delete (self , request , * args , ** kwargs ):
102- return super ().destroy (request , * args , ** kwargs )
103-
104- def put (self , request , * args , ** kwargs ):
105- return self .update (request , * args , ** kwargs )
114+ def put (self , request , * args , ** kwargs ):
115+ return self .update (request , * args , ** kwargs )
106116
107117
108118class LinkCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
119+ queryset = models .Link .objects .all ()
120+ serializer_class = serializers .LinkSerializer
121+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
122+
123+ def post (self , request , * args , ** kwargs ):
124+ return self .create (request , * args , ** kwargs )
109125
110- queryset = models .Link .objects .all ()
111- serializer_class = serializers .LinkSerializer
112- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
113126
114- def post (self , request , * args , ** kwargs ):
115- return self .create (request , * args , ** kwargs )
127+ class LinkDetail (
128+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
129+ ):
130+ queryset = models .Link .objects .all ()
131+ serializer_class = serializers .LinkSerializer
132+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
116133
117- class LinkDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
118- queryset = models .Link .objects .all ()
119- serializer_class = serializers .LinkSerializer
120- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsLinkOwner ]
134+ def delete (self , request , * args , ** kwargs ):
135+ return super ().destroy (request , * args , ** kwargs )
136+
137+ def put (self , request , * args , ** kwargs ):
138+ return self .update (request , * args , ** kwargs )
121139
122- def delete (self , request , * args , ** kwargs ):
123- return super ().destroy (request , * args , ** kwargs )
124-
125- def put (self , request , * args , ** kwargs ):
126- return self .update (request , * args , ** kwargs )
127140
128141class SubTopicCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
142+ queryset = models .SubTopic .objects .all ()
143+ serializer_class = serializers .SubTopicSerializer
144+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
145+
146+ def post (self , request , * args , ** kwargs ):
147+ return self .create (request , * args , ** kwargs )
148+
129149
130- queryset = models .SubTopic .objects .all ()
131- serializer_class = serializers .SubTopicSerializer
132- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
150+ class SubTopicDetail (
151+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
152+ ):
153+ queryset = models .SubTopic .objects .all ()
154+ serializer_class = serializers .SubTopicSerializer
155+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
133156
157+ def delete (self , request , * args , ** kwargs ):
158+ return super ().destroy (request , * args , ** kwargs )
134159
135- def post (self , request , * args , ** kwargs ):
136- return self .create (request , * args , ** kwargs )
160+ def put (self , request , * args , ** kwargs ):
161+ return self .update (request , * args , ** kwargs )
137162
138- class SubTopicDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
139- queryset = models .SubTopic .objects .all ()
140- serializer_class = serializers .SubTopicSerializer
141- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicOwner ]
142163
143- def delete (self , request , * args , ** kwargs ):
144- return super ().destroy (request , * args , ** kwargs )
145-
146- def put (self , request , * args , ** kwargs ):
147- return self .update (request , * args , ** kwargs )
148-
149164class SubTopicLinkCreate (mixins .CreateModelMixin , generics .GenericAPIView ):
165+ queryset = models .SubTopicLink .objects .all ()
166+ serializer_class = serializers .SubTopicLinkSerializer
167+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
168+
169+ def post (self , request , * args , ** kwargs ):
170+ return self .create (request , * args , ** kwargs )
150171
151- queryset = models .SubTopicLink .objects .all ()
152- serializer_class = serializers .SubTopicLinkSerializer
153- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
154172
155- def post (self , request , * args , ** kwargs ):
156- return self .create (request , * args , ** kwargs )
173+ class SubTopicLinkDetail (
174+ mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView
175+ ):
176+ queryset = models .SubTopicLink .objects .all ()
177+ serializer_class = serializers .SubTopicLinkSerializer
178+ permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
157179
158- class SubTopicLinkDetail (mixins .DestroyModelMixin , mixins .UpdateModelMixin , generics .GenericAPIView ):
159- queryset = models .SubTopicLink .objects .all ()
160- serializer_class = serializers .SubTopicLinkSerializer
161- permission_classes = [permissions .IsAuthenticatedOrReadOnly , IsSubTopicLinkOwner ]
180+ def delete (self , request , * args , ** kwargs ):
181+ return super ().destroy (request , * args , ** kwargs )
162182
163- def delete (self , request , * args , ** kwargs ):
164- return super ().destroy (request , * args , ** kwargs )
165-
166- def put (self , request , * args , ** kwargs ):
167- return self .update (request , * args , ** kwargs )
183+ def put (self , request , * args , ** kwargs ):
184+ return self .update (request , * args , ** kwargs )
0 commit comments