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
15 changes: 15 additions & 0 deletions projects/pagination.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from rest_framework import pagination


class ProjectNewsPagination(pagination.LimitOffsetPagination):
"""
Pagination for project news

For example:
/projects/1/news/?limit=10&offset=10
gets the next 10 news after the first 10 news.
"""

default_limit = 5
limit_query_param = "limit"
offset_query_param = "offset"
2 changes: 2 additions & 0 deletions projects/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from projects.constants import VERBOSE_STEPS
from projects.helpers import get_recommended_users, check_related_fields_update
from projects.models import Project, Achievement, ProjectNews
from projects.pagination import ProjectNewsPagination
from projects.permissions import (
IsProjectLeaderOrReadOnlyForNonDrafts,
HasInvolvementInProjectOrReadOnly,
Expand Down Expand Up @@ -233,6 +234,7 @@ def get(self, request, pk):
class ProjectNewsList(generics.ListCreateAPIView):
serializer_class = ProjectNewsListSerializer
permission_classes = [IsNewsAuthorIsProjectLeaderOrReadOnly]
pagination_class = ProjectNewsPagination

def perform_create(self, serializer):
project = Project.objects.get(pk=self.kwargs.get("project_pk"))
Expand Down