1
0
Fork 0
forked from Fuji/Fuji

Add semester saving to grades db and config file

This commit is contained in:
Maarceeli 2025-04-05 10:24:48 +02:00
parent e80f6c75d8
commit a4e938e90f
4 changed files with 56 additions and 7 deletions

View file

@ -17,4 +17,5 @@ defconf = {
usrconf = {
'fullName': '',
'grade': '',
'semester': 1,
}

View file

@ -50,12 +50,16 @@ def sync(page: ft.Page):
saveauth("Fuji", "Auth Context", jsoncontext)
student = students[student]
current_period = next(period for period in student.periods if period.current)
grades = interface.get_grades(current_period.number)
setcurrentsemester(next(period for period in student.periods if period.current))
notes = interface.get_notes()
grades = interface.get_grades(1)
create_grades_database(grades_list=grades, smstr=1)
grades = interface.get_grades(2)
add_grades_to_database(grades_list=grades, smstr=2)
create_notes_database(notes_list=notes)
create_grades_database(grades_list=grades)
def change_page(route):
routes = {

View file

@ -14,6 +14,7 @@ class Grades(SQLModel, table=True):
created_at: datetime
subject: str
creator: str
semester: int
class Notes(SQLModel, table=True):
id: int = Field(default=None, primary_key=True) # Add an auto-incrementing id
@ -26,7 +27,7 @@ class Notes(SQLModel, table=True):
engine = create_engine("sqlite:///database.db")
SQLModel.metadata.create_all(engine)
def create_grades_database(grades_list):
def create_grades_database(grades_list, smstr):
with Session(engine) as session:
session.execute(delete(Grades))
for grade in grades_list:
@ -40,6 +41,26 @@ def create_grades_database(grades_list):
created_at=grade.created_at,
subject=grade.subject,
creator=grade.creator,
semester=smstr
)
session.add(grade_obj)
session.commit()
def add_grades_to_database(grades_list, smstr):
with Session(engine) as session:
for grade in grades_list:
grade_obj = Grades(
value=grade.value,
is_point=grade.is_point,
point_numerator=grade.point_numerator,
point_denominator=grade.point_denominator,
weight=grade.weight,
name=grade.name,
created_at=grade.created_at,
subject=grade.subject,
creator=grade.creator,
semester=smstr
)
session.add(grade_obj)
@ -55,12 +76,12 @@ def fetch_grades_this_week():
return grades
def fetch_all_grades():
def fetch_all_grades(semester: int):
with Session(engine) as session:
grades = session.query(Grades).all()
grades = session.query(Grades).filter(Grades.semester == semester).all()
return grades
def create_notes_database(notes_list):
with Session(engine) as session:
session.execute(delete(Notes))

View file

@ -60,6 +60,29 @@ def setlanguage(lang):
with open(f"{getconfigpath()}/config.ini", "w") as file:
config.write(file)
def getcurrentsemester():
config = configparser.ConfigParser()
config.read(f"{getconfigpath()}/config.ini")
try:
semester = int(config['User']['semester'])
except ValueError:
semester = 1
return semester
def setcurrentsemester(semester):
config = configparser.ConfigParser()
config.read(f"{getconfigpath()}/config.ini")
try:
config["User"]["semester"] = str(semester.number)
except ValueError:
config["User"]["semester"] = "1"
with open(f"{getconfigpath()}/config.ini", "w") as file:
config.write(file)
def restart(page: ft.Page):
try:
python = sys.executable