This commit is contained in:
2025-05-23 11:55:49 +03:00
parent 45e5e78df2
commit 917acc0353

View File

@@ -1,6 +1,6 @@
from rest_framework import serializers from rest_framework import serializers
from sitemanagement.models import FAQ, News from sitemanagement.models import FAQ, News
from routes.models import Country from routes.models import Country, Route
from api.account.client.serializers import RouteSerializer from api.account.client.serializers import RouteSerializer
class FAQMainSerializer(serializers.ModelSerializer): class FAQMainSerializer(serializers.ModelSerializer):
@@ -38,23 +38,32 @@ class TelegramSerializer(serializers.Serializer):
class HomePageRouteSerializer(RouteSerializer): class HomePageRouteSerializer(RouteSerializer):
id = serializers.IntegerField()
username = serializers.SerializerMethodField() username = serializers.SerializerMethodField()
owner_type = serializers.CharField()
from_city_name = serializers.SerializerMethodField('get_start_point')
from_country_name = serializers.SerializerMethodField('get_country_from')
to_city_name = serializers.SerializerMethodField('get_end_point')
to_country_name = serializers.SerializerMethodField('get_country_to')
formatted_cargo_type = serializers.SerializerMethodField('get_cargo_type')
formatted_transport = serializers.SerializerMethodField('get_moving_type')
type_transport = serializers.CharField()
userImg = serializers.SerializerMethodField() userImg = serializers.SerializerMethodField()
start_point = serializers.SerializerMethodField() comment = serializers.CharField()
country_from = serializers.SerializerMethodField() formatted_departure = serializers.DateTimeField(source='departure_DT')
formatted_arrival = serializers.DateTimeField(source='arrival_DT')
country_from_icon = serializers.SerializerMethodField() country_from_icon = serializers.SerializerMethodField()
country_from_code = serializers.SerializerMethodField()
end_point = serializers.SerializerMethodField()
country_to = serializers.SerializerMethodField()
country_to_icon = serializers.SerializerMethodField() country_to_icon = serializers.SerializerMethodField()
country_to_code = serializers.SerializerMethodField()
cargo_type = serializers.SerializerMethodField() class Meta:
user_request = serializers.SerializerMethodField() model = Route
user_comment = serializers.CharField(source='comment') fields = (
moving_type = serializers.SerializerMethodField() 'id', 'username', 'owner_type', 'from_city_name', 'from_country_name',
estimated_date = serializers.SerializerMethodField() 'to_city_name', 'to_country_name', 'formatted_cargo_type',
day_out = serializers.DateTimeField(source='departure_DT') 'formatted_transport', 'type_transport', 'userImg', 'comment',
day_in = serializers.DateTimeField(source='arrival_DT') 'formatted_departure', 'formatted_arrival', 'country_from_icon',
'country_to_icon'
)
def get_username(self, obj): def get_username(self, obj):
return obj.owner.first_name if obj.owner else None return obj.owner.first_name if obj.owner else None
@@ -68,12 +77,6 @@ class HomePageRouteSerializer(RouteSerializer):
print(f"Error in get_userImg: {e}") print(f"Error in get_userImg: {e}")
return None return None
def get_start_point(self, obj):
return self.get_from_city_name(obj)
def get_country_from(self, obj):
return self.get_from_country_name(obj)
def get_country_from_icon(self, obj): def get_country_from_icon(self, obj):
country = self.get_from_country_name(obj) country = self.get_from_country_name(obj)
if not country: if not country:
@@ -84,16 +87,6 @@ class HomePageRouteSerializer(RouteSerializer):
except Country.DoesNotExist: except Country.DoesNotExist:
return None return None
def get_country_from_code(self, obj):
country = self.get_from_country_name(obj)
return country[:3].upper() if country else None
def get_end_point(self, obj):
return self.get_to_city_name(obj)
def get_country_to(self, obj):
return self.get_to_country_name(obj)
def get_country_to_icon(self, obj): def get_country_to_icon(self, obj):
country = self.get_to_country_name(obj) country = self.get_to_country_name(obj)
if not country: if not country:
@@ -102,12 +95,21 @@ class HomePageRouteSerializer(RouteSerializer):
country_obj = Country.objects.get(international_name=country) country_obj = Country.objects.get(international_name=country)
return country_obj.flag_img_url return country_obj.flag_img_url
except Country.DoesNotExist: except Country.DoesNotExist:
print(f"Country not found: {country}")
return None return None
def get_country_to_code(self, obj): def get_start_point(self, obj):
country = self.get_to_country_name(obj) return self.get_from_city_name(obj)
return country[:3].upper() if country else None
def get_country_from(self, obj):
return self.get_from_country_name(obj)
def get_end_point(self, obj):
return self.get_to_city_name(obj)
def get_country_to(self, 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)
@@ -117,6 +119,3 @@ class HomePageRouteSerializer(RouteSerializer):
def get_moving_type(self, obj): def get_moving_type(self, obj):
return self.get_formatted_transport(obj) return self.get_formatted_transport(obj)
def get_estimated_date(self, obj):
return obj.arrival_DT