dynamic routes for main page

This commit is contained in:
2025-05-23 11:48:45 +03:00
parent efccb591ff
commit 45e5e78df2
10 changed files with 234 additions and 141 deletions

View File

@@ -4,12 +4,10 @@ from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response
from api.utils.decorators import handle_exceptions
from django.db.models import Q
from routes.models import Route
from routes.constants.routeChoices import owner_type_choices
from api.main.serializers import FAQMainSerializer, NewsMainSerializer, TelegramSerializer
from api.account.client.serializers import RouteSerializer
from api.main.serializers import FAQMainSerializer, NewsMainSerializer, TelegramSerializer, HomePageRouteSerializer
from sitemanagement.models import FAQ, News
class FAQView(APIView):
@@ -39,16 +37,20 @@ class NewsView(APIView):
class LatestRoutesView(APIView):
@handle_exceptions
def get(self, request):
"""Получаем последние 5 маршрутов для каждого типа owner_type"""
"""Получаем последние маршруты"""
latest_routes = {}
routes = []
owner_types = dict(owner_type_choices).keys()
for owner_type in owner_types:
routes = Route.objects.filter(owner_type=owner_type).order_by('-id')[:5]
latest_routes[owner_type] = RouteSerializer(routes, many=True).data
routes.extend(
HomePageRouteSerializer(
Route.objects.filter(owner_type=owner_type).order_by('-id')[:5],
many=True
).data
)
return Response(latest_routes, status=status.HTTP_200_OK)
return Response(routes, status=status.HTTP_200_OK)
class TelegramMessageView(APIView):
@handle_exceptions