This commit is contained in:
A'zamov Samandar
2025-12-06 21:50:28 +05:00
parent 3aa20fdaa1
commit f5766aa319
140 changed files with 2376 additions and 1582 deletions

View File

@@ -1 +1 @@
from .banner import * # noqa
from .banner import *

View File

@@ -1,9 +1,9 @@
from rest_framework.permissions import IsAuthenticated, AllowAny
from rest_framework.viewsets import ReadOnlyModelViewSet
from drf_spectacular.utils import extend_schema
from drf_spectacular.utils import extend_schema, extend_schema_view
from django_core.mixins import BaseViewSetMixin
from core.apps.api.models import Banner
from core.apps.api.models import BannerModel
from core.apps.api.serializers.banner import (
ListBannerSerializer,
RetrieveBannerSerializer,
@@ -11,15 +11,30 @@ from core.apps.api.serializers.banner import (
)
@extend_schema(tags=['Banner'])
@extend_schema_view(
list=extend_schema(
summary="List all active banners",
description="Get list of all active banners ordered by display order",
tags=["Banners"]
),
retrieve=extend_schema(
summary="Get banner details",
description="Get detailed information about a specific banner",
tags=["Banners"]
),
)
class BannerViewSet(BaseViewSetMixin, ReadOnlyModelViewSet):
queryset = Banner.objects.all()
"""
ViewSet for managing banners.
Returns active banners for display on website.
"""
queryset = BannerModel.objects.filter(is_active=True).order_by("order", "-created_at")
serializer_class = ListBannerSerializer
permission_classes = [AllowAny]
action_permission_classes = {}
action_serializers = {
'list': ListBannerSerializer,
'retrieve': RetrieveBannerSerializer,
'create': CreateBannerSerializer,
action_serializer_class = {
"list": ListBannerSerializer,
"retrieve": RetrieveBannerSerializer,
"create": CreateBannerSerializer,
}