backend routes
This commit is contained in:
@@ -42,6 +42,7 @@ class RouteSerializer(serializers.ModelSerializer):
|
||||
formatted_arrival = serializers.SerializerMethodField()
|
||||
formatted_cargo_type = serializers.SerializerMethodField()
|
||||
formatted_transport = serializers.SerializerMethodField()
|
||||
is_highlighted = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Route
|
||||
@@ -102,6 +103,8 @@ 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
|
||||
|
||||
class CreateRouteSerializer(serializers.ModelSerializer):
|
||||
country_from = serializers.CharField(write_only=True)
|
||||
|
||||
@@ -9,6 +9,7 @@ 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 .serializers import RouteSerializer, CreateRouteSerializer, CitySerializer, CountrySerializer, PlanChangeSerializer, PricingSerializer, LeadSerializer, LeadResponseSerializer
|
||||
from api.auth.serializers import UserResponseSerializer
|
||||
@@ -309,4 +310,27 @@ class LeadViewSet(ViewSet):
|
||||
return Response(
|
||||
LeadResponseSerializer(leads, many=True).data,
|
||||
status=status.HTTP_200_OK
|
||||
)
|
||||
)
|
||||
|
||||
class PremiumMembershipActionsView(ViewSet):
|
||||
"""Выделение объявления"""
|
||||
|
||||
@action(detail=False, methods=['patch'])
|
||||
@handle_exceptions
|
||||
def highlight_route(self, request):
|
||||
"""Выделяем объявление"""
|
||||
route_id = request.data.get('route_id')
|
||||
route = get_object_or_404(Route, id=route_id)
|
||||
route.is_highlighted = True
|
||||
route.save()
|
||||
return Response({"message": "Объявление выделено"}, status=status.HTTP_200_OK)
|
||||
|
||||
@action(detail=False, methods=['patch'])
|
||||
@handle_exceptions
|
||||
def upper_route(self, request):
|
||||
"""Поднимаем объявление"""
|
||||
route_id = request.data.get('route_id')
|
||||
route = get_object_or_404(Route, id=route_id)
|
||||
route.rising_DT = datetime.now()
|
||||
route.save()
|
||||
return Response({"message": "Объявление поднято"}, status=status.HTTP_200_OK)
|
||||
@@ -15,7 +15,8 @@ CityView,
|
||||
CountryView,
|
||||
GetMembershipData,
|
||||
ChangeUserMembership,
|
||||
LeadViewSet)
|
||||
LeadViewSet,
|
||||
PremiumMembershipActionsView)
|
||||
|
||||
from api.search.views import SearchRouteListView
|
||||
|
||||
@@ -35,6 +36,8 @@ urlpatterns = [
|
||||
path("v1/account/change_main_data/", AccountActionsView.as_view({'patch':'change_data_main_tab'}), name='change_data_main_tab'),
|
||||
path("v1/account/routes/", AccountActionsView.as_view({'get':'user_routes'}), name='user_routes'),
|
||||
path("v1/account/create_route/", AccountActionsView.as_view({'post':'create_route'}), name='create_route'),
|
||||
path("v1/account/highlight/", PremiumMembershipActionsView.as_view({'patch':'highlight_route'}), name='highlight_route'),
|
||||
path("v1/account/upper/", PremiumMembershipActionsView.as_view({'patch':'upper_route'}), name='upper_route'),
|
||||
|
||||
path("v1/account/send_lead/", LeadViewSet.as_view({'post':'send_lead'}), name='send_lead'),
|
||||
path("v1/account/leads/", LeadViewSet.as_view({'get':'get_leads'}), name='get_leads'),
|
||||
|
||||
Reference in New Issue
Block a user