mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-09-19 18:31:16 +00:00
Add warning about done semester with missing experiment marks
This commit is contained in:
parent
8d7ea5cae3
commit
e530dceab4
1 changed files with 17 additions and 0 deletions
|
@ -573,6 +573,16 @@ class Semester(db.Model):
|
||||||
def lastSemester():
|
def lastSemester():
|
||||||
return Semester.sortedSemestersStartingWithNewest(limit=1).first()
|
return Semester.sortedSemestersStartingWithNewest(limit=1).first()
|
||||||
|
|
||||||
|
def num_missing_experiment_marks(self):
|
||||||
|
return db.session.scalar(
|
||||||
|
select(func.count())
|
||||||
|
.select_from(ExperimentMark)
|
||||||
|
.join(GroupExperiment)
|
||||||
|
.join(SemesterExperiment)
|
||||||
|
.where(SemesterExperiment.semester == self)
|
||||||
|
.where(ExperimentMark.final_experiment_mark == None)
|
||||||
|
)
|
||||||
|
|
||||||
def set_done(self, next_semester=None):
|
def set_done(self, next_semester=None):
|
||||||
set_next_semester = next_semester is not None
|
set_next_semester = next_semester is not None
|
||||||
|
|
||||||
|
@ -581,6 +591,13 @@ class Semester(db.Model):
|
||||||
semester = db.session.get(Semester, id)
|
semester = db.session.get(Semester, id)
|
||||||
|
|
||||||
if semester == self or not semester.done:
|
if semester == self or not semester.done:
|
||||||
|
num_missing_experiment_marks = self.num_missing_experiment_marks()
|
||||||
|
if num_missing_experiment_marks > 0:
|
||||||
|
flash(
|
||||||
|
f"Semester {semester} was set as done, but it has {num_missing_experiment_marks} missing experiment marks!",
|
||||||
|
"danger",
|
||||||
|
)
|
||||||
|
|
||||||
semester.done = True
|
semester.done = True
|
||||||
|
|
||||||
if set_next_semester:
|
if set_next_semester:
|
||||||
|
|
Loading…
Reference in a new issue