Partly fixing timetable
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user