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