diff --git a/advlabdb/models.py b/advlabdb/models.py index 37a6865..2304d2e 100644 --- a/advlabdb/models.py +++ b/advlabdb/models.py @@ -109,10 +109,10 @@ class PartStudent(db.Model): f"Group's program {group.program} and student part's program {part.program} do not match!" ) - def __init__(self, student, part, group=None): + def __init__(self, part, group=None, **kwargs): PartStudent.check(part, group) - super().__init__(student=student, part=part, group=group) + super().__init__(part=part, group=group, **kwargs) def checkThenSetFinalPartMark(self): """ @@ -274,10 +274,10 @@ class GroupExperiment(db.Model): f"{student} has already done {semester_experiment.experiment} in {partStudent.part} and had {experimentMark}!" ) - def __init__(self, semester_experiment, group): + def __init__(self, semester_experiment, group, **kwargs): GroupExperiment.check(semester_experiment, group) - super().__init__(semester_experiment=semester_experiment, group=group) + super().__init__(semester_experiment=semester_experiment, group=group, **kwargs) for partStudent in group.part_students: db.session.add(ExperimentMark(part_student=partStudent, group_experiment=self)) @@ -467,15 +467,10 @@ class Appointment(db.Model): return assistant - def __init__(self, date, special, group_experiment, assistant=None): + def __init__(self, group_experiment, assistant=None, **kwargs): assistant = Appointment.checkAndGetAssistant(group_experiment, assistant) - super().__init__( - date=date, - special=special, - group_experiment=group_experiment, - assistant=assistant, - ) + super().__init__(group_experiment=group_experiment, assistant=assistant, **kwargs) def custom_update(self, date, special, group_experiment, assistant=None): self.assistant = Appointment.checkAndGetAssistant(group_experiment, assistant) @@ -526,14 +521,14 @@ class Semester(db.Model): def __str__(self): return self.str() - def __init__(self, label, year): + def __init__(self, label, year, **kwargs): last_semester = Semester.lastSemester() if last_semester is not None: if year < last_semester.year or (year == last_semester.year and label == "SS"): raise DatabaseException(f"You can only create semesters older than the last semester {last_semester}!") - super().__init__(label=label, year=year) + super().__init__(label=label, year=year, **kwargs) @staticmethod def initFromOldSemester(label, year, oldSemester, transferParts, transferAssistants): @@ -625,10 +620,10 @@ class ExperimentMark(db.Model): if group_experiment not in part_student.group.group_experiments: raise DatabaseException("The group of the part student does not have the given group experiment!") - def __init__(self, part_student, group_experiment): + def __init__(self, part_student, group_experiment, **kwargs): ExperimentMark.check(part_student, group_experiment) - super().__init__(part_student=part_student, group_experiment=group_experiment) + super().__init__(part_student=part_student, group_experiment=group_experiment, **kwargs) def update_final_experiment_mark(self): """