mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-22 22:39:36 +02:00
Improve ICS calendar generation by handling missing and invalid start dates
This commit is contained in:
parent
54c859b2a8
commit
edc5fdf1cc
1 changed files with 16 additions and 2 deletions
|
@ -1234,10 +1234,24 @@ class IcsCalendarGeneratorViewSet(viewsets.ViewSet):
|
||||||
for adventure in serializer.data:
|
for adventure in serializer.data:
|
||||||
if adventure['visits']:
|
if adventure['visits']:
|
||||||
for visit in adventure['visits']:
|
for visit in adventure['visits']:
|
||||||
|
# Skip if start_date is missing
|
||||||
|
if not visit.get('start_date'):
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Parse start_date and handle end_date
|
||||||
|
try:
|
||||||
|
start_date = datetime.strptime(visit['start_date'], '%Y-%m-%d').date()
|
||||||
|
except ValueError:
|
||||||
|
continue # Skip if the start_date is invalid
|
||||||
|
|
||||||
|
end_date = (
|
||||||
|
datetime.strptime(visit['end_date'], '%Y-%m-%d').date() + timedelta(days=1)
|
||||||
|
if visit.get('end_date') else start_date + timedelta(days=1)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create event
|
||||||
event = Event()
|
event = Event()
|
||||||
event.add('summary', adventure['name'])
|
event.add('summary', adventure['name'])
|
||||||
start_date = datetime.strptime(visit['start_date'], '%Y-%m-%d').date()
|
|
||||||
end_date = datetime.strptime(visit['end_date'], '%Y-%m-%d').date() + timedelta(days=1) if visit['end_date'] else start_date + timedelta(days=1)
|
|
||||||
event.add('dtstart', start_date)
|
event.add('dtstart', start_date)
|
||||||
event.add('dtend', end_date)
|
event.add('dtend', end_date)
|
||||||
event.add('dtstamp', datetime.now())
|
event.add('dtstamp', datetime.now())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue