fix highlight logic

This commit is contained in:
2025-05-29 12:44:59 +03:00
parent 327acdd062
commit 2e820fb041
4 changed files with 23 additions and 36 deletions

View File

@@ -103,8 +103,13 @@ class RouteSerializer(serializers.ModelSerializer):
transport_types = dict(type_transport_choices)
return transport_types.get(obj.type_transport, obj.type_transport)
def get_is_highlighted(self, obj):
return obj.is_currently_highlighted
def get_is_highlighted(self, obj):
now = timezone.now()
if obj.highlight_end_DT and obj.is_highlighted:
result = now <= obj.highlight_end_DT
return result
return False
class CreateRouteSerializer(serializers.ModelSerializer):
country_from = serializers.CharField(write_only=True)

View File

@@ -9,7 +9,8 @@ from django.core.validators import validate_email
from django.core.exceptions import ValidationError
from django.db import models
from django.db.models import Q
from datetime import datetime
from datetime import datetime, timedelta
from django.utils import timezone
from .serializers import RouteSerializer, CreateRouteSerializer, CitySerializer, CountrySerializer, PlanChangeSerializer, PricingSerializer, LeadSerializer, LeadResponseSerializer
from api.auth.serializers import UserResponseSerializer
@@ -321,9 +322,17 @@ class PremiumMembershipActionsView(ViewSet):
"""Выделяем объявление"""
route_id = request.data.get('route_id')
route = get_object_or_404(Route, id=route_id)
# подсвечиваем объявление на 24 часа
now = timezone.now()
route.highlight_end_DT = now + timedelta(days=1)
route.is_highlighted = True
route.save()
return Response({"message": "Объявление выделено"}, status=status.HTTP_200_OK)
return Response({
"message": "Объявление выделено",
"is_highlighted": route.is_highlighted
}, status=status.HTTP_200_OK)
@action(detail=False, methods=['patch'])
@handle_exceptions