diff --git a/CHANGELOG.md b/CHANGELOG.md index cc85d51dd..532da5821 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Remove pagination on `get_performances` to remove limitation on 1000 first points ([#690](https://github.com/Substra/substra-backend/pull/690)) + ## [0.39.0](https://github.com/Substra/substra-backend/releases/tag/0.39.0) 2023-06-27 ### Added diff --git a/backend/api/tests/views/test_views_performance.py b/backend/api/tests/views/test_views_performance.py index 19565ce20..622f17172 100644 --- a/backend/api/tests/views/test_views_performance.py +++ b/backend/api/tests/views/test_views_performance.py @@ -118,9 +118,6 @@ def test_performance_list_empty(self): self.assertEqual( response.json(), { - "count": 0, - "next": None, - "previous": None, "compute_plan_statistics": { "compute_tasks_distinct_ranks": [1, 2, 3], "compute_tasks_distinct_rounds": [1], @@ -134,9 +131,6 @@ def test_performance_list(self): self.assertEqual( response.json(), { - "count": len(self.expected_results), - "next": None, - "previous": None, "compute_plan_statistics": self.expected_stats, "results": self.expected_results, }, diff --git a/backend/api/views/performance.py b/backend/api/views/performance.py index 4d7ea6e3b..6d142e8f9 100644 --- a/backend/api/views/performance.py +++ b/backend/api/views/performance.py @@ -12,6 +12,7 @@ from rest_framework import mixins from rest_framework.decorators import action from rest_framework.filters import OrderingFilter +from rest_framework.response import Response from rest_framework.viewsets import GenericViewSet import orchestrator.computeplan_pb2 as computeplan_pb2 @@ -32,6 +33,7 @@ class CPPerformanceViewSet(mixins.ListModelMixin, GenericViewSet): serializer_class = CPPerformanceSerializer + pagination_class = None filter_backends = [OrderingFilter] ordering_fields = [ "compute_task_output__task__rank", @@ -79,12 +81,8 @@ def get_queryset(self): def list(self, request, compute_plan_pk): queryset = self.filter_queryset(self.get_queryset()) cp_stats = self._get_cp_ranks_and_rounds(compute_plan_pk).first() - - page = self.paginate_queryset(queryset) - serializer = self.get_serializer(page, many=True) - response = self.get_paginated_response(serializer.data) - response.data["compute_plan_statistics"] = cp_stats - return response + serializer = self.get_serializer(queryset, many=True) + return Response({"results": serializer.data, "compute_plan_statistics": cp_stats}) class PerformanceFilter(FilterSet):