|
21 | 21 | from rest_framework.views import APIView |
22 | 22 | from rest_framework_simplejwt.tokens import RefreshToken, TokenError |
23 | 23 |
|
| 24 | +from core.models import SpecializationCategory, Specialization |
24 | 25 | from core.pagination import Pagination |
25 | 26 | from core.permissions import IsOwnerOrReadOnly |
26 | 27 | from events.models import Event |
|
54 | 55 | ResendVerifyEmailSerializer, |
55 | 56 | UserProjectListSerializer, |
56 | 57 | UserSubscribedProjectsSerializer, |
| 58 | + SpecializationsSerializer, |
| 59 | + SpecializationSerializer, |
57 | 60 | ) |
58 | | -from .filters import UserFilter |
| 61 | +from .filters import UserFilter, SpecializationFilter |
59 | 62 | from .pagination import UsersPagination |
60 | 63 | from .services.verification import VerificationTasks |
61 | 64 |
|
@@ -386,3 +389,22 @@ def get_queryset(self): |
386 | 389 | return user.subscribed_projects.all() |
387 | 390 | except User.DoesNotExist: |
388 | 391 | raise exceptions.NotFound |
| 392 | + |
| 393 | + |
| 394 | +class UserSpecializationsNestedView(GenericAPIView): |
| 395 | + serializer_class = SpecializationsSerializer |
| 396 | + queryset = SpecializationCategory.objects.all() |
| 397 | + |
| 398 | + def get(self, request): |
| 399 | + data = self.serializer_class(self.get_queryset(), many=True).data |
| 400 | + return Response(status=status.HTTP_200_OK, data=data) |
| 401 | + |
| 402 | + |
| 403 | +class UserSpecializationsInlineView(ListAPIView): |
| 404 | + serializer_class = SpecializationSerializer |
| 405 | + pagination_class = Pagination |
| 406 | + filter_backends = (filters.DjangoFilterBackend,) |
| 407 | + filterset_class = SpecializationFilter |
| 408 | + |
| 409 | + def get_queryset(self): |
| 410 | + return Specialization.objects.all() |
0 commit comments