1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-08-06 05:35:19 +02:00
This commit is contained in:
Giiid I/O 2025-07-22 01:21:11 +00:00 committed by GitHub
commit 2fd277d98d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 1 deletions

View file

@ -1,6 +1,7 @@
from django.utils import timezone from django.utils import timezone
import os import os
from .models import Adventure, AdventureImage, ChecklistItem, Collection, Note, Transportation, Checklist, Visit, Category, Attachment, Lodging from .models import Adventure, AdventureImage, ChecklistItem, Collection, Note, Transportation, Checklist, Visit, Category, Attachment, Lodging
from .utils.timezone_utils import format_datetime_in_selected_timezone
from rest_framework import serializers from rest_framework import serializers
from main.utils import CustomModelSerializer from main.utils import CustomModelSerializer
from users.serializers import CustomUserDetailsSerializer from users.serializers import CustomUserDetailsSerializer
@ -254,6 +255,8 @@ class AdventureSerializer(CustomModelSerializer):
class TransportationSerializer(CustomModelSerializer): class TransportationSerializer(CustomModelSerializer):
distance = serializers.SerializerMethodField() distance = serializers.SerializerMethodField()
start_date_local = serializers.SerializerMethodField()
end_date_local = serializers.SerializerMethodField()
class Meta: class Meta:
model = Transportation model = Transportation
@ -262,7 +265,7 @@ class TransportationSerializer(CustomModelSerializer):
'link', 'date', 'flight_number', 'from_location', 'to_location', 'link', 'date', 'flight_number', 'from_location', 'to_location',
'is_public', 'collection', 'created_at', 'updated_at', 'end_date', 'is_public', 'collection', 'created_at', 'updated_at', 'end_date',
'origin_latitude', 'origin_longitude', 'destination_latitude', 'destination_longitude', 'origin_latitude', 'origin_longitude', 'destination_latitude', 'destination_longitude',
'start_timezone', 'end_timezone', 'distance' # ✅ Add distance here 'start_timezone', 'end_timezone', 'distance', 'start_date_local', 'end_date_local' # ✅ Add distance here
] ]
read_only_fields = ['id', 'created_at', 'updated_at', 'user_id', 'distance'] read_only_fields = ['id', 'created_at', 'updated_at', 'user_id', 'distance']
@ -278,6 +281,12 @@ class TransportationSerializer(CustomModelSerializer):
except ValueError: except ValueError:
return None return None
return None return None
def get_start_date_local(self, obj):
return format_datetime_in_selected_timezone(obj.date, obj.start_timezone)
def get_end_date_local(self, obj):
return format_datetime_in_selected_timezone(obj.end_date, obj.end_timezone)
class LodgingSerializer(CustomModelSerializer): class LodgingSerializer(CustomModelSerializer):

View file

@ -0,0 +1,8 @@
import pytz
def format_datetime_in_selected_timezone(dt, user_tz):
if dt is None and user_tz is None:
return None
tz = pytz.timezone(user_tz)
return dt.astimezone(tz).isoformat()