From caf499180e6259d267d9d29396d727a1e125daca Mon Sep 17 00:00:00 2001 From: Maarceeli Date: Thu, 27 Mar 2025 18:12:48 +0100 Subject: [PATCH] Add notes handling: create notes database and fetch notes functionality --- src/main.py | 4 +++- src/sqlitehandlernr.py | 32 +++++++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main.py b/src/main.py index 560b269..502919a 100644 --- a/src/main.py +++ b/src/main.py @@ -52,7 +52,9 @@ def sync(page: ft.Page): student = students[student] current_period = next(period for period in student.periods if period.current) grades = interface.get_grades(current_period.number) - + notes = interface.get_notes() + + create_notes_database(notes_list=notes) create_grades_database(grades_list=grades) def change_page(route): diff --git a/src/sqlitehandlernr.py b/src/sqlitehandlernr.py index e52802e..aa562a4 100644 --- a/src/sqlitehandlernr.py +++ b/src/sqlitehandlernr.py @@ -15,6 +15,14 @@ class Grades(SQLModel, table=True): subject: str creator: str +class Notes(SQLModel, table=True): + id: int = Field(default=None, primary_key=True) # Add an auto-incrementing id + name: Optional[str] = Field(default=None, nullable=True) + content: Optional[str] = Field(default=None, nullable=True) + points: Optional[str] = Field(default=None, nullable=True) + creator: str + created_at: datetime + engine = create_engine("sqlite:///database.db") SQLModel.metadata.create_all(engine) @@ -22,9 +30,6 @@ def create_grades_database(grades_list): with Session(engine) as session: session.execute(delete(Grades)) for grade in grades_list: - # Format the created_at to the desired format - formatted_time = grade.created_at.strftime('%d/%m/%Y %H:%M:%S') - grade_obj = Grades( value=grade.value, is_point=grade.is_point, @@ -55,3 +60,24 @@ def fetch_all_grades(): grades = session.query(Grades).all() return grades + +def create_notes_database(notes_list): + with Session(engine) as session: + session.execute(delete(Notes)) + for note in notes_list: + note_obj = Notes( + name=note.name or "Untitled", + content=note.content, + points=note.points or "None", + creator=note.creator, + created_at=note.created_at, + ) + + session.add(note_obj) + session.commit() + +def fetch_all_notes(): + with Session(engine) as session: + notes = session.query(Notes).all() + + return notes \ No newline at end of file