From c822e0a867f008e6a1e338bc807a4551f1d8e722 Mon Sep 17 00:00:00 2001
From: borzechof99 <borzechof99@mi.fu-berlin.de>
Date: Mon, 21 Jun 2021 17:41:12 +0200
Subject: [PATCH] Add TODOs

---
 unisportomat/quiz/pagination.py  |  1 -
 unisportomat/quiz/serializers.py |  2 +-
 unisportomat/quiz/views.py       | 14 ++++----------
 3 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/unisportomat/quiz/pagination.py b/unisportomat/quiz/pagination.py
index 058ca4b..385a061 100644
--- a/unisportomat/quiz/pagination.py
+++ b/unisportomat/quiz/pagination.py
@@ -5,7 +5,6 @@ or be given globally via settings.py.
 """
 
 from rest_framework.pagination import PageNumberPagination
-from rest_framework.response import Response
 
 
 class PageNumberWithPageSizePagination(PageNumberPagination):
diff --git a/unisportomat/quiz/serializers.py b/unisportomat/quiz/serializers.py
index 37b11e9..e59e4ff 100644
--- a/unisportomat/quiz/serializers.py
+++ b/unisportomat/quiz/serializers.py
@@ -22,7 +22,6 @@ class QuestionListSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Question
-
         fields = ("id", "text", "criterion")
 
 
@@ -72,6 +71,7 @@ class SingleSportSerializer(serializers.BaseSerializer):
             criterion_data["name"] = criterion.name
 
             # The iterator iterates over the Criterions connected, and not the criterion connection itself, so we need to get that one again
+            # TODO: Use get_rating of the Sport object
             criterion_data["value"] = CriterionRating.objects.get(
                 criterion=criterion.pk, sport=sport.pk
             ).rating
diff --git a/unisportomat/quiz/views.py b/unisportomat/quiz/views.py
index 8389138..7e89f0d 100644
--- a/unisportomat/quiz/views.py
+++ b/unisportomat/quiz/views.py
@@ -6,6 +6,7 @@ Defines the views for the API
 from rest_framework import viewsets
 from rest_framework.views import APIView
 from rest_framework.response import Response
+from django.shortcuts import get_object_or_404
 from django.http import JsonResponse
 from .pagination import PageNumberWithPageSizePagination
 
@@ -92,6 +93,8 @@ class SmallSportListView(viewsets.ViewSet):
 
             filled_criteria_pks = []
 
+            # TODO: Change the way that unfilled Criteria are detected (look for value -1)
+            # TODO: is_filled as function of sport
             # Get pks of Criteria which are connected to the sport
             for criterion in sport.criteria_ratings.iterator():
                 filled_criteria_pks.append(criterion.pk)
@@ -140,16 +143,7 @@ class SmallSportListView(viewsets.ViewSet):
     # GET for api/admin/sport/<id>/
     def retrieve(self, request, pk=None):
 
-        try:
-            sport = Sport.objects.get(pk=pk)
-        except:
-            return JsonResponse(
-                {
-                    "status_code": 404,
-                    "error": f"No Sport with ID {pk} found",
-                },
-                status=404,
-            )
+        sport = get_object_or_404(Sport, pk=pk)
 
         return Response(SingleSportSerializer(sport).data)
 
-- 
GitLab