From 89a61198c7a43f48d7dbc80bd7eb4b459f80d9e5 Mon Sep 17 00:00:00 2001
From: borzechof99 <borzechof99@mi.fu-berlin.de>
Date: Sat, 26 Jun 2021 18:32:02 +0200
Subject: [PATCH] Add Pagination to Archive

---
 unisportomat/quiz/tests.py | 8 ++++----
 unisportomat/quiz/views.py | 8 ++++++--
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/unisportomat/quiz/tests.py b/unisportomat/quiz/tests.py
index 5a9b5a4..33c24c2 100644
--- a/unisportomat/quiz/tests.py
+++ b/unisportomat/quiz/tests.py
@@ -551,7 +551,7 @@ class APITest(APITestCase):
         # Get initial State of Archive
         response = self.client.get(reverse("archive"))
 
-        self.assertEqual(response.data, [])
+        self.assertEqual(response.data["results"], [])
 
         # Change State of Sport
         response = self.client.patch(
@@ -563,8 +563,8 @@ class APITest(APITestCase):
         # Check whether the Archive changed
         response = self.client.get(reverse("archive"))
 
-        self.assertEqual(response.data[0]["id"], 1)
-        self.assertEqual(response.data[0]["name"], "Jiu Jitsu")
+        self.assertEqual(response.data["results"][0]["id"], 1)
+        self.assertEqual(response.data["results"][0]["name"], "Jiu Jitsu")
 
     def test_sport_scraper(self):
         """
@@ -591,4 +591,4 @@ class APITest(APITestCase):
         self.assertEqual(len(sport_response.data["results"]), 120)
 
         sport_response = self.client.get(reverse("archive"))
-        self.assertEqual(len(sport_response.data), 1)
+        self.assertEqual(len(sport_response.data["results"]), 1)
diff --git a/unisportomat/quiz/views.py b/unisportomat/quiz/views.py
index 93920a5..a670d09 100644
--- a/unisportomat/quiz/views.py
+++ b/unisportomat/quiz/views.py
@@ -295,11 +295,15 @@ class SportArchiveView(APIView):
         GET for api/admin/archive/
         """
 
-        archived_sports = Sport.objects.filter(currently_active=False)
+        paginator = PageNumberWithPageSizePagination()
+
+        archived_sports = paginator.paginate_queryset(
+            Sport.objects.filter(currently_active=False).order_by("name"), request
+        )
 
         response = ArchiveSerializer(archived_sports)
 
-        return Response(response.data)
+        return paginator.get_paginated_response(response.data)
 
 
 class ScraperView(APIView):
-- 
GitLab