1
0
Fork 0
forked from Fuji/Fuji

Add timetable database creation in sync function and define Timetable model

This commit is contained in:
Maarceeli 2025-04-17 12:37:44 +02:00
parent f0d9cfa7be
commit b0f556cde4
2 changed files with 35 additions and 0 deletions

View file

@ -65,6 +65,7 @@ def sync(page: ft.Page):
start, end = get_current_month_dates()
timetable = interface.get_timetable(from_=start, to=end)
create_timetable_database(timetable_list=timetable)
def change_page(route):
routes = {

View file

@ -24,6 +24,19 @@ class Notes(SQLModel, table=True):
creator: str
created_at: datetime
class Timetable(SQLModel, table=True):
id: int = Field(default=None, primary_key=True) # Add an auto-incrementing id
lid: int
position : int
date: date
room: str | None
start: str
end: str
subject: str | None
teacher: str | None
group: str | None
visible: bool
engine = create_engine("sqlite:///database.db")
SQLModel.metadata.create_all(engine)
@ -47,6 +60,27 @@ def create_grades_database(grades_list, smstr):
session.add(grade_obj)
session.commit()
def create_timetable_database(timetable_list):
with Session(engine) as session:
session.execute(delete(Timetable))
for lesson in timetable_list:
lesson_obj = Timetable(
lid=lesson.id,
position = lesson.position,
date=lesson.date,
room=lesson.room,
start=lesson.start,
end=lesson.end,
subject=lesson.subject,
teacher=lesson.teacher,
group=lesson.group,
visible=lesson.visible
)
session.add(lesson_obj)
session.commit()
def add_grades_to_database(grades_list, smstr):
with Session(engine) as session:
for grade in grades_list: