diff --git a/projects/urls.py b/projects/urls.py index 33d596dc..124bc9a2 100644 --- a/projects/urls.py +++ b/projects/urls.py @@ -1,6 +1,5 @@ from django.urls import path - from projects.views import ( ProjectDetail, ProjectList, @@ -9,6 +8,7 @@ AchievementDetail, ProjectCollaborators, ProjectCountView, + ProjectVacancyResponses, ) app_name = "projects" @@ -21,4 +21,5 @@ path("steps/", ProjectSteps.as_view()), path("achievements/", AchievementList.as_view()), path("achievements//", AchievementDetail.as_view()), + path("/responses/", ProjectVacancyResponses.as_view()), ] diff --git a/projects/views.py b/projects/views.py index 12f5e8dd..df9eb5b2 100644 --- a/projects/views.py +++ b/projects/views.py @@ -1,8 +1,10 @@ +from django.db.models import Q from django_filters import rest_framework as filters from rest_framework import generics, permissions, status +from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView -from django.db.models import Q + from core.permissions import IsStaffOrReadOnly from projects.filters import ProjectFilter from projects.helpers import VERBOSE_STEPS @@ -15,6 +17,8 @@ AchievementDetailSerializer, ProjectCollaboratorSerializer, ) +from vacancy.models import VacancyResponse +from vacancy.serializers import VacancyResponseListSerializer class ProjectList(generics.ListCreateAPIView): @@ -169,3 +173,16 @@ class AchievementDetail(generics.RetrieveUpdateDestroyAPIView): queryset = Achievement.objects.get_achievements_for_detail_view() serializer_class = AchievementDetailSerializer permission_classes = [IsStaffOrReadOnly] + + +class ProjectVacancyResponses(generics.GenericAPIView): + serializer_class = VacancyResponseListSerializer + permission_classes = [IsAuthenticated] + + def get_queryset(self): + return VacancyResponse.objects.filter(vacancy__project_id=self.kwargs["pk"]) + + def get(self, request, pk): + queryset = self.get_queryset() + serializer = self.get_serializer(queryset, many=True) + return Response(serializer.data)