Skip to content

Commit f4f30aa

Browse files
committed
paginate user projects
1 parent 9cc1a83 commit f4f30aa

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

users/views.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
UserProgramsSerializer,
2929
PartnerProgramListSerializer,
3030
)
31+
from projects.pagination import ProjectsPagination
3132
from projects.serializers import ProjectListSerializer
3233
from users.helpers import (
3334
verify_email,
@@ -249,17 +250,20 @@ class AchievementDetail(RetrieveUpdateDestroyAPIView):
249250
permission_classes = [IsAchievementOwnerOrReadOnly]
250251

251252

252-
class UserProjectsList(APIView):
253+
class UserProjectsList(GenericAPIView):
253254
permission_classes = [IsAuthenticated]
255+
pagination_class = ProjectsPagination
256+
serializer_class = ProjectListSerializer
254257

255258
def get(self, request):
256-
serializer = ProjectListSerializer(
257-
Project.objects.get_user_projects_for_list_view().filter(
258-
Q(leader_id=self.request.user.id)
259-
| Q(collaborator__user=self.request.user)
260-
),
261-
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)
262261
)
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)
263267
return Response(serializer.data, status=status.HTTP_200_OK)
264268

265269

0 commit comments

Comments
 (0)