1
0
Fork 0
forked from Fuji/Fuji

Add notes handling: create notes database and fetch notes functionality

This commit is contained in:
Maarceeli 2025-03-27 18:12:48 +01:00
parent 3b5227496a
commit caf499180e
2 changed files with 32 additions and 4 deletions

View file

@ -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):

View file

@ -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