From b0f556cde409b13de9137963f19fb8294f9b8955 Mon Sep 17 00:00:00 2001 From: Maarceeli Date: Thu, 17 Apr 2025 12:37:44 +0200 Subject: [PATCH] Add timetable database creation in sync function and define Timetable model --- src/main.py | 1 + src/sqlitehandlernr.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/main.py b/src/main.py index 1469c30..4040c4a 100644 --- a/src/main.py +++ b/src/main.py @@ -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 = { diff --git a/src/sqlitehandlernr.py b/src/sqlitehandlernr.py index 3bbe5ed..702b26f 100644 --- a/src/sqlitehandlernr.py +++ b/src/sqlitehandlernr.py @@ -23,6 +23,19 @@ class Notes(SQLModel, table=True): points: Optional[str] = Field(default=None, nullable=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) @@ -46,6 +59,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: