Add semester saving to grades db and config file
This commit is contained in:
parent
e80f6c75d8
commit
a4e938e90f
4 changed files with 56 additions and 7 deletions
|
@ -17,4 +17,5 @@ defconf = {
|
|||
usrconf = {
|
||||
'fullName': '',
|
||||
'grade': '',
|
||||
'semester': 1,
|
||||
}
|
10
src/main.py
10
src/main.py
|
@ -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 = {
|
||||
|
|
|
@ -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))
|
||||
|
|
23
src/utils.py
23
src/utils.py
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue