8
8
from rest_framework .permissions import IsAuthenticated
9
9
from rest_framework .response import Response
10
10
11
- from ..models import DestructionList , DestructionListItem , DestructionListReview
11
+ from ..models import (
12
+ DestructionList ,
13
+ DestructionListItem ,
14
+ DestructionListItemReview ,
15
+ DestructionListReview ,
16
+ )
12
17
from .filtersets import (
13
18
DestructionListFilterset ,
14
19
DestructionListItemFilterset ,
15
20
DestructionListReviewFilterset ,
21
+ DestructionListReviewItemFilterset ,
16
22
)
17
23
from .permissions import (
18
24
CanMakeRequestedChanges ,
19
- CanReviewPermission ,
20
25
CanStartDestructionPermission ,
21
26
CanUpdateDestructionList ,
22
27
)
23
28
from .serializers import (
29
+ DestructionListAPIResponseSerializer ,
30
+ DestructionListItemReviewSerializer ,
24
31
DestructionListItemSerializer ,
25
- DestructionListResponseSerializer ,
26
32
DestructionListReviewSerializer ,
27
33
DestructionListSerializer ,
28
34
)
29
35
30
36
31
37
@extend_schema_view (
32
38
list = extend_schema (
39
+ tags = ["Destruction list" ],
33
40
summary = _ ("List destruction lists" ),
34
41
description = _ ("List all destruction lists." ),
35
- responses = {200 : DestructionListResponseSerializer (many = True )},
42
+ responses = {200 : DestructionListAPIResponseSerializer (many = True )},
36
43
),
37
44
create = extend_schema (
45
+ tags = ["Destruction list" ],
38
46
summary = _ ("Create destruction list" ),
39
47
description = _ ("Create a new destruction list." ),
40
48
examples = [
63
71
],
64
72
),
65
73
update = extend_schema (
74
+ tags = ["Destruction list" ],
66
75
summary = _ ("Update destruction list" ),
67
76
description = _ (
68
77
"Update a destruction list. "
94
103
],
95
104
),
96
105
partial_update = extend_schema (
106
+ tags = ["Destruction list" ],
97
107
summary = _ ("Partially update a destruction list" ),
98
108
description = _ (
99
109
"Partially update a destruction list. "
114
124
],
115
125
),
116
126
retrieve = extend_schema (
127
+ tags = ["Destruction list" ],
117
128
summary = _ ("Retrieve destruction list" ),
118
129
description = _ ("Retrieve details about a destruction list." ),
119
- responses = {200 : DestructionListResponseSerializer },
130
+ responses = {200 : DestructionListAPIResponseSerializer },
131
+ ),
132
+ make_requested_changes = extend_schema (
133
+ tags = ["Destruction list" ],
134
+ summary = _ ("Make requested changes" ),
135
+ description = _ (
136
+ "Update a destruction list after a reviewer has requested changes."
137
+ ),
120
138
),
121
139
)
122
140
class DestructionListViewSet (
@@ -145,7 +163,7 @@ def get_permissions(self):
145
163
146
164
def get_serializer_class (self ):
147
165
if self .action in ["retrieve" , "list" ]:
148
- return DestructionListResponseSerializer
166
+ return DestructionListAPIResponseSerializer
149
167
return self .serializer_class
150
168
151
169
@transaction .atomic
@@ -165,6 +183,7 @@ def make_requested_changes(self, request, *args, **kwargs):
165
183
166
184
@extend_schema_view (
167
185
list = extend_schema (
186
+ tags = ["Destruction list" ],
168
187
summary = _ ("List destruction list items" ),
169
188
description = _ (
170
189
"List all the items (cases) that are related to a destruction list."
@@ -183,13 +202,15 @@ class DestructionListItemsViewSet(
183
202
184
203
@extend_schema_view (
185
204
list = extend_schema (
186
- summary = _ ("List destruction list reviews" ),
205
+ tags = ["Reviews" ],
206
+ summary = _ ("List reviews" ),
187
207
description = _ (
188
208
"List all the reviews that have been made for a destruction list."
189
209
),
190
210
),
191
211
create = extend_schema (
192
- summary = _ ("Create a destruction list review" ),
212
+ tags = ["Reviews" ],
213
+ summary = _ ("Create review" ),
193
214
description = _ (
194
215
"Create a review for a destruction list. "
195
216
"Only the user currently assigned to the destruction list can create a review."
@@ -206,9 +227,18 @@ class DestructionListReviewViewSet(
206
227
filter_backends = (DjangoFilterBackend ,)
207
228
filterset_class = DestructionListReviewFilterset
208
229
209
- def get_permissions (self ):
210
- if self .action == "create" :
211
- permission_classes = [IsAuthenticated & CanReviewPermission ]
212
- else :
213
- permission_classes = [IsAuthenticated ]
214
- return [permission () for permission in permission_classes ]
230
+
231
+ @extend_schema_view (
232
+ list = extend_schema (
233
+ tags = ["Reviews" ],
234
+ summary = _ ("List review items" ),
235
+ description = _ (
236
+ "List all the feedback to specific cases within a destruction list."
237
+ ),
238
+ ),
239
+ )
240
+ class DestructionListItemReviewViewSet (mixins .ListModelMixin , viewsets .GenericViewSet ):
241
+ serializer_class = DestructionListItemReviewSerializer
242
+ queryset = DestructionListItemReview .objects .all ()
243
+ filter_backends = (DjangoFilterBackend ,)
244
+ filterset_class = DestructionListReviewItemFilterset
0 commit comments