Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion projects/urls.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from django.urls import path


from projects.views import (
ProjectDetail,
ProjectList,
Expand All @@ -9,6 +8,7 @@
AchievementDetail,
ProjectCollaborators,
ProjectCountView,
ProjectVacancyResponses,
)

app_name = "projects"
Expand All @@ -21,4 +21,5 @@
path("steps/", ProjectSteps.as_view()),
path("achievements/", AchievementList.as_view()),
path("achievements/<int:pk>/", AchievementDetail.as_view()),
path("<int:pk>/responses/", ProjectVacancyResponses.as_view()),
]
19 changes: 18 additions & 1 deletion projects/views.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -15,6 +17,8 @@
AchievementDetailSerializer,
ProjectCollaboratorSerializer,
)
from vacancy.models import VacancyResponse
from vacancy.serializers import VacancyResponseListSerializer


class ProjectList(generics.ListCreateAPIView):
Expand Down Expand Up @@ -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)