|
6 | 6 | from django.db.models import Q |
7 | 7 | from django.shortcuts import redirect |
8 | 8 | from django_filters import rest_framework as filters |
9 | | -from rest_framework import status |
| 9 | +from rest_framework import status, permissions |
10 | 10 | from rest_framework.generics import ( |
11 | 11 | GenericAPIView, |
12 | 12 | ListAPIView, |
|
28 | 28 | UserProgramsSerializer, |
29 | 29 | PartnerProgramListSerializer, |
30 | 30 | ) |
| 31 | +from projects.pagination import ProjectsPagination |
31 | 32 | from projects.serializers import ProjectListSerializer |
32 | 33 | from users.helpers import ( |
33 | 34 | verify_email, |
34 | 35 | check_related_fields_update, |
| 36 | + force_verify_user, |
35 | 37 | ) |
36 | 38 | from users.constants import ( |
37 | 39 | VERBOSE_ROLE_TYPES, |
@@ -248,17 +250,20 @@ class AchievementDetail(RetrieveUpdateDestroyAPIView): |
248 | 250 | permission_classes = [IsAchievementOwnerOrReadOnly] |
249 | 251 |
|
250 | 252 |
|
251 | | -class UserProjectsList(APIView): |
| 253 | +class UserProjectsList(GenericAPIView): |
252 | 254 | permission_classes = [IsAuthenticated] |
| 255 | + pagination_class = ProjectsPagination |
| 256 | + serializer_class = ProjectListSerializer |
253 | 257 |
|
254 | 258 | def get(self, request): |
255 | | - serializer = ProjectListSerializer( |
256 | | - Project.objects.get_user_projects_for_list_view().filter( |
257 | | - Q(leader_id=self.request.user.id) |
258 | | - | Q(collaborator__user=self.request.user) |
259 | | - ), |
260 | | - many=True, |
| 259 | + queryset = Project.objects.get_user_projects_for_list_view().filter( |
| 260 | + Q(leader_id=self.request.user.id) | Q(collaborator__user=self.request.user) |
261 | 261 | ) |
| 262 | + |
| 263 | + page = self.paginate_queryset(queryset) |
| 264 | + if page is not None: |
| 265 | + serializer = self.get_serializer(page, many=True) |
| 266 | + return self.get_paginated_response(serializer.data) |
262 | 267 | return Response(serializer.data, status=status.HTTP_200_OK) |
263 | 268 |
|
264 | 269 |
|
@@ -348,3 +353,16 @@ def post(self, request, *args, **kwargs): |
348 | 353 | ) |
349 | 354 | except Exception: |
350 | 355 | return Response(status=status.HTTP_400_BAD_REQUEST) |
| 356 | + |
| 357 | + |
| 358 | +class ForceVerifyView(APIView): |
| 359 | + queryset = User.objects.get_users_for_detail_view() |
| 360 | + permission_classes = [permissions.IsAdminUser] |
| 361 | + |
| 362 | + def post(self, request, *args, **kwargs): |
| 363 | + try: |
| 364 | + user = User.objects.get(pk=kwargs["pk"]) |
| 365 | + force_verify_user(user) |
| 366 | + return Response(status=status.HTTP_200_OK) |
| 367 | + except User.DoesNotExist: |
| 368 | + return Response(status=status.HTTP_404_NOT_FOUND) |
0 commit comments