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

Update API to fit Admin Frontend

parent 1e464b7e
No related branches found
No related tags found
No related merge requests found
...@@ -8,6 +8,7 @@ from rest_framework.views import APIView ...@@ -8,6 +8,7 @@ from rest_framework.views import APIView
from rest_framework.response import Response from rest_framework.response import Response
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.http import HttpResponse from django.http import HttpResponse
from django.db.models.functions import Lower
from .pagination import PageNumberWithPageSizePagination from .pagination import PageNumberWithPageSizePagination
from .course_scraper.course_scraper import scraping from .course_scraper.course_scraper import scraping
...@@ -62,23 +63,30 @@ class SmallSportListView(viewsets.ViewSet): ...@@ -62,23 +63,30 @@ class SmallSportListView(viewsets.ViewSet):
paginator = PageNumberWithPageSizePagination() paginator = PageNumberWithPageSizePagination()
order_by_dict = { order_by_dict = {
"id": "pk", "id": ("pk", False),
"-id": "-pk", "-id": ("pk", True),
"name": "name", "name": ("name", False),
"-name": "-name", "-name": ("name", True),
"url": "url", "url": ("url", False),
"-url": "-url", "-url": ("url", True),
"is_filled": "pk", "is_filled": ("pk", False),
"-is_filled": "-pk", "-is_filled": ("pk", True),
} }
order_by = "pk" order_by = ("pk", False)
if "ordering" in request.query_params.keys(): if "ordering" in request.query_params.keys():
order_by = order_by_dict[request.query_params.get("ordering")] order_by = order_by_dict[request.query_params.get("ordering")]
# Maybe care for is_filled ordering in the Future? # Maybe care for is_filled ordering in the Future?
if order_by[1]:
sports = Sport.objects.filter(currently_active=True).order_by(
Lower(order_by[0]).desc()
)
else:
sports = Sport.objects.filter(currently_active=True).order_by(
Lower(order_by[0])
)
sports = Sport.objects.all().order_by(order_by)
sports = paginator.paginate_queryset(sports, request) sports = paginator.paginate_queryset(sports, request)
is_filled_tuples = [] is_filled_tuples = []
...@@ -241,16 +249,19 @@ class IncompleteSportView(APIView): ...@@ -241,16 +249,19 @@ class IncompleteSportView(APIView):
""" """
paginator = PageNumberWithPageSizePagination() paginator = PageNumberWithPageSizePagination()
queryset = Sport.objects.all().order_by("name") queryset = Sport.objects.filter(currently_active=True).order_by("name")
queryset = paginator.paginate_queryset(queryset, request)
incomplete_sport_list = [] incomplete_sport_list = []
for sport in Sport.objects.filter(currently_active=True).iterator(): for sport in queryset:
if not sport.is_filled(): if not sport.is_filled():
incomplete_sport_list.append(sport) incomplete_sport_list.append(sport)
incomplete_sport_list = paginator.paginate_queryset(
incomplete_sport_list, request
)
response = IncompleteSportSerializer(incomplete_sport_list) response = IncompleteSportSerializer(incomplete_sport_list)
return paginator.get_paginated_response(response.data) return paginator.get_paginated_response(response.data)
......
...@@ -27,14 +27,14 @@ router.register(r"activity", views.ActivityView, "activity") ...@@ -27,14 +27,14 @@ router.register(r"activity", views.ActivityView, "activity")
urlpatterns = [ urlpatterns = [
path("admin/", admin.site.urls), path("admin/", admin.site.urls),
path( path(
"api/admin/sport/incomplete/", "api/admin/sport-incomplete/",
views.IncompleteSportView.as_view(), views.IncompleteSportView.as_view(),
name="incomplete", name="incomplete",
), ),
path("api/admin/sport/archive/", views.SportArchiveView.as_view(), name="archive"), path("api/admin/sport-archive/", views.SportArchiveView.as_view(), name="archive"),
path("api/admin/sport/scraper/", views.ScraperView.as_view(), name="scraper"), path("api/admin/sport-scraper/", views.ScraperView.as_view(), name="scraper"),
path("api/admin/criteria/", views.CriteriaView.as_view(), name="criteria"), path("api/admin/criteria/", views.CriteriaView.as_view(), name="criteria"),
path("api/admin/question/order", views.QuestionOrderView.as_view(), name="order"), path("api/admin/question-order", views.QuestionOrderView.as_view(), name="order"),
path("api/admin/greeting/", views.GreetingView.as_view(), name="greeting"), path("api/admin/greeting/", views.GreetingView.as_view(), name="greeting"),
path("api/admin/end/", views.EndView.as_view(), name="end"), path("api/admin/end/", views.EndView.as_view(), name="end"),
path("api/admin/", include(router.urls)), path("api/admin/", include(router.urls)),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment