|
15 | 15 | IsProjectLeaderOrReadOnlyForNonDrafts, |
16 | 16 | HasInvolvementInProjectOrReadOnly, |
17 | 17 | IsProjectLeader, |
| 18 | + IsNewsAuthorIsProjectLeader, |
18 | 19 | ) |
19 | 20 | from projects.serializers import ( |
20 | 21 | ProjectDetailSerializer, |
|
23 | 24 | AchievementDetailSerializer, |
24 | 25 | ProjectCollaboratorSerializer, |
25 | 26 | ProjectNewsListSerializer, |
| 27 | + ProjectNewsDetailSerializer, |
26 | 28 | ) |
27 | 29 | from users.models import LikesOnProject |
28 | 30 | from users.serializers import UserListSerializer |
@@ -227,10 +229,23 @@ def get(self, request, pk): |
227 | 229 |
|
228 | 230 |
|
229 | 231 | class ProjectNewsList(generics.ListCreateAPIView): |
230 | | - queryset = ProjectNews.objects.all() |
231 | 232 | serializer_class = ProjectNewsListSerializer |
232 | | - permission_classes = [IsProjectLeaderOrReadOnlyForNonDrafts] |
| 233 | + permission_classes = [IsNewsAuthorIsProjectLeader] |
233 | 234 |
|
234 | 235 | def perform_create(self, serializer): |
235 | 236 | project = Project.objects.get(pk=self.kwargs["pk"]) |
236 | 237 | serializer.save(project=project) |
| 238 | + |
| 239 | + def get_queryset(self): |
| 240 | + project = Project.objects.get(pk=self.kwargs["pk"]) |
| 241 | + return ProjectNews.objects.filter(project=project) |
| 242 | + |
| 243 | + |
| 244 | +class ProjectNewsDetail(generics.RetrieveUpdateDestroyAPIView): |
| 245 | + queryset = ProjectNews.objects.all() |
| 246 | + serializer_class = ProjectNewsDetailSerializer |
| 247 | + permission_classes = [IsNewsAuthorIsProjectLeader] |
| 248 | + |
| 249 | + def get_queryset(self): |
| 250 | + project = Project.objects.get(pk=self.kwargs["project_pk"]) |
| 251 | + return ProjectNews.objects.filter(project=project).all() |
0 commit comments