15
15
if typing .TYPE_CHECKING :
16
16
from typing import Any , Iterator
17
17
from flask import Blueprint , Response
18
- from sqlalchemy .orm .query import Query
18
+ from sqlalchemy .orm .query import RowReturningQuery
19
19
from ..config import Config , ConfigLessonTime
20
20
21
21
@@ -66,7 +66,7 @@ def create_school_calendar(
66
66
span .set_tag ("event.time" , subject ["time" ])
67
67
span .set_data ("event.source" , subject )
68
68
69
- logger .info (
69
+ logger .debug (
70
70
"Preparing iCalendar event" ,
71
71
extra = {"type" : "timetable" , "source" : subject },
72
72
)
@@ -123,7 +123,7 @@ def create_school_calendar(
123
123
span .set_tag ("event.time" , subject ["time" ])
124
124
span .set_data ("event.source" , subject )
125
125
126
- logger .info (
126
+ logger .debug (
127
127
"Preparing iCalendar event" ,
128
128
extra = {"type" : "substitution" , "source" : subject },
129
129
)
@@ -183,18 +183,22 @@ def create_school_calendar(
183
183
184
184
185
185
@with_span (op = "generate" )
186
- def create_schedule_calendar (query : Query [LunchSchedule ], name : str , url : str ) -> Response :
186
+ def create_schedule_calendar (
187
+ query : RowReturningQuery [tuple [LunchSchedule , str ]],
188
+ name : str ,
189
+ url : str ,
190
+ ) -> Response :
187
191
logger = logging .getLogger (__name__ )
188
192
calendar = create_calendar (name , url )
189
193
190
- for model in query :
194
+ for model , classname in query :
191
195
with start_span (op = "event" ) as span :
192
196
span .set_tag ("event.type" , "lunch-schedule" )
193
197
span .set_tag ("event.date" , model .date )
194
198
span .set_tag ("event.time" , model .time )
195
199
span .set_data ("event.source" , model )
196
200
197
- logger .info (
201
+ logger .debug (
198
202
"Preparing iCalendar event" ,
199
203
extra = {"type" : "lunch-schedule" , "source" : model },
200
204
)
@@ -215,7 +219,7 @@ def create_schedule_calendar(query: Query[LunchSchedule], name: str, url: str) -
215
219
(
216
220
str (model .date )
217
221
+ str (model .time )
218
- + str (model . class_ . name )
222
+ + str (classname )
219
223
+ str (model .location )
220
224
+ str (model .notes )
221
225
).encode ("utf-8" )
@@ -281,7 +285,7 @@ def get_substitutions_calendar_for_classes(classes: list[str]) -> Response:
281
285
@bp .route ("/calendar/schedules/<list:classes>" )
282
286
def get_schedules_calendar_for_classes (classes : list [str ]) -> Response :
283
287
return create_schedule_calendar (
284
- Session .query (LunchSchedule )
288
+ Session .query (LunchSchedule , Class . name )
285
289
.join (Class )
286
290
.filter (Class .name .in_ (classes ))
287
291
.order_by (LunchSchedule .time , LunchSchedule .class_ ),
0 commit comments