Skip to content
Snippets Groups Projects
Verified Commit 82eee15d authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Fix playout endpoint showing timeslots in wrong timezone

Wrong mix of timezone aware and timezone naive datetime objects

Close #116
parent fb223194
No related branches found
No related tags found
No related merge requests found
Pipeline #3118 passed
...@@ -89,8 +89,9 @@ def timeslot_entry(*, timeslot: TimeSlot) -> dict: ...@@ -89,8 +89,9 @@ def timeslot_entry(*, timeslot: TimeSlot) -> dict:
return { return {
"id": timeslot.id, "id": timeslot.id,
"start": timeslot.start.strftime("%Y-%m-%dT%H:%M:%S"), # we need start & end as timezone naive datetime objects
"end": timeslot.end.strftime("%Y-%m-%dT%H:%M:%S"), "start": timezone.make_naive(timeslot.start).strftime("%Y-%m-%dT%H:%M:%S"),
"end": timezone.make_naive(timeslot.end).strftime("%Y-%m-%dT%H:%M:%S"),
"title": title, "title": title,
"schedule_id": schedule.id, "schedule_id": schedule.id,
"is_repetition": timeslot.is_repetition, "is_repetition": timeslot.is_repetition,
...@@ -175,9 +176,9 @@ def json_playout(request): ...@@ -175,9 +176,9 @@ def json_playout(request):
- internal calendar to retrieve all timeslots for a week - internal calendar to retrieve all timeslots for a week
""" """
# datetime.combine returns a timezone naive datetime object # datetime.now and datetime.combine return timezone naive datetime objects
if request.GET.get("start") is None: if request.GET.get("start") is None:
schedule_start = timezone.make_aware(datetime.combine(timezone.now(), time(0, 0))) schedule_start = timezone.make_aware(datetime.combine(datetime.now(), time(0, 0)))
else: else:
schedule_start = timezone.make_aware( schedule_start = timezone.make_aware(
datetime.combine(parse_date(request.GET.get("start")), time(0, 0)) datetime.combine(parse_date(request.GET.get("start")), time(0, 0))
...@@ -187,8 +188,7 @@ def json_playout(request): ...@@ -187,8 +188,7 @@ def json_playout(request):
schedule_end = schedule_start + timedelta(days=7) schedule_end = schedule_start + timedelta(days=7)
else: else:
schedule_end = timezone.make_aware( schedule_end = timezone.make_aware(
datetime.combine(parse_date(request.GET.get("end")) + timedelta(days=1), time(0, 0)), datetime.combine(parse_date(request.GET.get("end")) + timedelta(days=1), time(0, 0))
timezone=timezone.get_current_timezone(),
) )
include_virtual = request.GET.get("includeVirtual") == "true" include_virtual = request.GET.get("includeVirtual") == "true"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment