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 = {
|
usrconf = {
|
||||||
'fullName': '',
|
'fullName': '',
|
||||||
'grade': '',
|
'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)
|
saveauth("Fuji", "Auth Context", jsoncontext)
|
||||||
|
|
||||||
student = students[student]
|
student = students[student]
|
||||||
current_period = next(period for period in student.periods if period.current)
|
setcurrentsemester(next(period for period in student.periods if period.current))
|
||||||
grades = interface.get_grades(current_period.number)
|
|
||||||
notes = interface.get_notes()
|
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_notes_database(notes_list=notes)
|
||||||
create_grades_database(grades_list=grades)
|
|
||||||
|
|
||||||
def change_page(route):
|
def change_page(route):
|
||||||
routes = {
|
routes = {
|
||||||
|
|
|
@ -14,6 +14,7 @@ class Grades(SQLModel, table=True):
|
||||||
created_at: datetime
|
created_at: datetime
|
||||||
subject: str
|
subject: str
|
||||||
creator: str
|
creator: str
|
||||||
|
semester: int
|
||||||
|
|
||||||
class Notes(SQLModel, table=True):
|
class Notes(SQLModel, table=True):
|
||||||
id: int = Field(default=None, primary_key=True) # Add an auto-incrementing id
|
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")
|
engine = create_engine("sqlite:///database.db")
|
||||||
SQLModel.metadata.create_all(engine)
|
SQLModel.metadata.create_all(engine)
|
||||||
|
|
||||||
def create_grades_database(grades_list):
|
def create_grades_database(grades_list, smstr):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
session.execute(delete(Grades))
|
session.execute(delete(Grades))
|
||||||
for grade in grades_list:
|
for grade in grades_list:
|
||||||
|
@ -40,6 +41,26 @@ def create_grades_database(grades_list):
|
||||||
created_at=grade.created_at,
|
created_at=grade.created_at,
|
||||||
subject=grade.subject,
|
subject=grade.subject,
|
||||||
creator=grade.creator,
|
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)
|
session.add(grade_obj)
|
||||||
|
@ -55,12 +76,12 @@ def fetch_grades_this_week():
|
||||||
|
|
||||||
return grades
|
return grades
|
||||||
|
|
||||||
def fetch_all_grades():
|
def fetch_all_grades(semester: int):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
grades = session.query(Grades).all()
|
grades = session.query(Grades).filter(Grades.semester == semester).all()
|
||||||
|
|
||||||
return grades
|
return grades
|
||||||
|
|
||||||
|
|
||||||
def create_notes_database(notes_list):
|
def create_notes_database(notes_list):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
session.execute(delete(Notes))
|
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:
|
with open(f"{getconfigpath()}/config.ini", "w") as file:
|
||||||
config.write(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):
|
def restart(page: ft.Page):
|
||||||
try:
|
try:
|
||||||
python = sys.executable
|
python = sys.executable
|
||||||
|
|
Loading…
Add table
Reference in a new issue