fix / dont dispay not actual items
This commit is contained in:
@@ -103,14 +103,12 @@ class HomePageRouteSerializer(RouteSerializer):
|
|||||||
def get_country_from(self, obj):
|
def get_country_from(self, obj):
|
||||||
return self.get_from_country_name(obj)
|
return self.get_from_country_name(obj)
|
||||||
|
|
||||||
|
|
||||||
def get_end_point(self, obj):
|
def get_end_point(self, obj):
|
||||||
return self.get_to_city_name(obj)
|
return self.get_to_city_name(obj)
|
||||||
|
|
||||||
def get_country_to(self, obj):
|
def get_country_to(self, obj):
|
||||||
return self.get_to_country_name(obj)
|
return self.get_to_country_name(obj)
|
||||||
|
|
||||||
|
|
||||||
def get_cargo_type(self, obj):
|
def get_cargo_type(self, obj):
|
||||||
return self.get_formatted_cargo_type(obj)
|
return self.get_formatted_cargo_type(obj)
|
||||||
|
|
||||||
|
|||||||
@@ -6,5 +6,3 @@ class SearchRouteSerializer(HomePageRouteSerializer):
|
|||||||
class Meta(HomePageRouteSerializer.Meta):
|
class Meta(HomePageRouteSerializer.Meta):
|
||||||
model = Route
|
model = Route
|
||||||
fields = HomePageRouteSerializer.Meta.fields
|
fields = HomePageRouteSerializer.Meta.fields
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from .serializers import SearchRouteSerializer
|
|||||||
from api.utils.pagination import StandardResultsSetPagination
|
from api.utils.pagination import StandardResultsSetPagination
|
||||||
from rest_framework.exceptions import ValidationError
|
from rest_framework.exceptions import ValidationError
|
||||||
from routes.constants.routeChoices import owner_type_choices
|
from routes.constants.routeChoices import owner_type_choices
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
class SearchRouteListView(generics.ListAPIView):
|
class SearchRouteListView(generics.ListAPIView):
|
||||||
serializer_class = SearchRouteSerializer
|
serializer_class = SearchRouteSerializer
|
||||||
@@ -13,12 +13,18 @@ class SearchRouteListView(generics.ListAPIView):
|
|||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
owner_type = self.kwargs.get('owner_type')
|
owner_type = self.kwargs.get('owner_type')
|
||||||
valid_types = [choice[0] for choice in owner_type_choices]
|
valid_types = [choice[0] for choice in owner_type_choices]
|
||||||
|
current_time = timezone.now()
|
||||||
|
|
||||||
if not owner_type or owner_type not in valid_types:
|
if not owner_type or owner_type not in valid_types:
|
||||||
raise ValidationError("Invalid or missing owner_type. Must be either 'customer' or 'mover'")
|
raise ValidationError("Invalid or missing owner_type. Must be either 'customer' or 'mover'")
|
||||||
|
|
||||||
queryset = Route.objects.filter(
|
# базовый фильтр по типу владельца
|
||||||
owner_type=owner_type
|
queryset = Route.objects.filter(owner_type=owner_type)
|
||||||
).order_by('-arrival_DT')
|
|
||||||
|
|
||||||
return queryset
|
# фильтруем по времени в зависимости от типа
|
||||||
|
if owner_type == 'mover':
|
||||||
|
queryset = queryset.filter(departure_DT__gt=current_time)
|
||||||
|
else: # customer
|
||||||
|
queryset = queryset.filter(arrival_DT__gt=current_time)
|
||||||
|
|
||||||
|
return queryset.order_by('-arrival_DT')
|
||||||
|
|||||||
Reference in New Issue
Block a user