Partly fixing timetable

This commit is contained in:
2026-05-30 16:06:07 +02:00
parent 6979f1685a
commit 91184cfc96
+4 -4
View File
@@ -1,4 +1,4 @@
from datetime import datetime, time, timedelta from datetime import datetime, time, timedelta, timezone
from typing import List, Optional from typing import List, Optional
from fastapi import APIRouter, Depends, Query from fastapi import APIRouter, Depends, Query
from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.ext.asyncio.session import AsyncSession
@@ -71,6 +71,7 @@ async def get_timetable(
adj_from_date = from_date - timedelta(days=1) adj_from_date = from_date - timedelta(days=1)
sessions, _ = await get_sessions(session, from_date=adj_from_date, to_date=to_date) sessions, _ = await get_sessions(session, from_date=adj_from_date, to_date=to_date)
slots = [] slots = []
now = datetime.now(timezone.utc).replace(tzinfo=None)
current_date = from_date.date() current_date = from_date.date()
while current_date <= to_date.date(): while current_date <= to_date.date():
date_str = current_date.strftime("%Y-%m-%d") date_str = current_date.strftime("%Y-%m-%d")
@@ -83,9 +84,8 @@ async def get_timetable(
slot_end_str = slot_end_time.strftime("%H:%M") slot_end_str = slot_end_time.strftime("%H:%M")
is_sleeping = False is_sleeping = False
for s in sessions: for s in sessions:
if s.start_time <= slot_end_time and ( effective_end_time = s.end_time if s.end_time is not None else now
s.end_time is None or s.end_time >= slot_start_time if s.start_time <= slot_end_time and effective_end_time >= slot_start_time:
):
is_sleeping = True is_sleeping = True
break break
slots.append( slots.append(