Skip to content
Snippets Groups Projects
Commit e61e6e3a authored by borzechof99's avatar borzechof99 :whale2:
Browse files

Start Implementation

parent cf10cd93
No related branches found
No related tags found
No related merge requests found
...@@ -199,3 +199,21 @@ class CriteriaSerializer(serializers.BaseSerializer): ...@@ -199,3 +199,21 @@ class CriteriaSerializer(serializers.BaseSerializer):
criteria_list.append(criterion_dict) criteria_list.append(criterion_dict)
return criteria_list return criteria_list
class SmallQuestionListSerializer(serializers.BaseSerializer):
def to_representation(self, questions):
question_list = []
for question in questions:
question_list.append(
{
"id": question.pk,
"text_de": question.text_de,
"text_en": question.text_en,
"criterion": question.criterion.name,
}
)
return question_list
...@@ -18,8 +18,10 @@ from .serializers import ( ...@@ -18,8 +18,10 @@ from .serializers import (
SingleSportSerializer, SingleSportSerializer,
CriteriaSerializer, CriteriaSerializer,
IncompleteSportSerializer, IncompleteSportSerializer,
SmallQuestionListSerializer,
) )
from .models import Sport, Criterion, Question from .models import Sport, Criterion, Question
from .pagination import PageNumberWithPageSizePagination
# Create your views here. # Create your views here.
...@@ -260,3 +262,32 @@ class CriteriaView(APIView): ...@@ -260,3 +262,32 @@ class CriteriaView(APIView):
response = CriteriaSerializer(data) response = CriteriaSerializer(data)
return Response(response.data) return Response(response.data)
class SmallQuestionListView(viewsets.ViewSet):
"""
Viewset for Handling Question Lists and Questions
"""
# List GET
def list(self, request):
"""
api/admin/question GET
Returns a Paginated List of all Questions with their ID, German and English Text, and Criterion
"""
paginator = PageNumberWithPageSizePagination()
questions = Question.objects.all().order_by("pk")
questions = paginator.paginate_queryset(questions, request)
response = SmallQuestionListSerializer(questions)
return paginator.get_paginated_response(response.data)
# List POST
def create(self, request):
"""
api/admin/question POST
Takes Values of a new Question and Creates a Question and its corresponding Criterion
"""
...@@ -23,6 +23,7 @@ router.register(r"sport-list", views.SportListView, "sport-list") ...@@ -23,6 +23,7 @@ router.register(r"sport-list", views.SportListView, "sport-list")
router.register(r"criterion-list", views.CriterionListView, "criterion-list") router.register(r"criterion-list", views.CriterionListView, "criterion-list")
router.register(r"question-list", views.QuestionListView, "question-list") router.register(r"question-list", views.QuestionListView, "question-list")
router.register(r"small-sport-list", views.SmallSportListView, "small-sport-list") router.register(r"small-sport-list", views.SmallSportListView, "small-sport-list")
router.register(r"question", views.SmallQuestionListView, "question")
urlpatterns = [ urlpatterns = [
path("admin/", admin.site.urls), path("admin/", admin.site.urls),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment