mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-08-05 05:05:17 +02:00
Merge 47efae6f91
into 4e96e529f4
This commit is contained in:
commit
2fd277d98d
2 changed files with 18 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
|||
from django.utils import timezone
|
||||
import os
|
||||
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 main.utils import CustomModelSerializer
|
||||
from users.serializers import CustomUserDetailsSerializer
|
||||
|
@ -254,6 +255,8 @@ class AdventureSerializer(CustomModelSerializer):
|
|||
|
||||
class TransportationSerializer(CustomModelSerializer):
|
||||
distance = serializers.SerializerMethodField()
|
||||
start_date_local = serializers.SerializerMethodField()
|
||||
end_date_local = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Transportation
|
||||
|
@ -262,7 +265,7 @@ class TransportationSerializer(CustomModelSerializer):
|
|||
'link', 'date', 'flight_number', 'from_location', 'to_location',
|
||||
'is_public', 'collection', 'created_at', 'updated_at', 'end_date',
|
||||
'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']
|
||||
|
||||
|
@ -278,6 +281,12 @@ class TransportationSerializer(CustomModelSerializer):
|
|||
except ValueError:
|
||||
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):
|
||||
|
||||
|
|
8
backend/server/adventures/utils/timezone_utils.py
Normal file
8
backend/server/adventures/utils/timezone_utils.py
Normal 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()
|
Loading…
Add table
Add a link
Reference in a new issue