From 27c8d3d952f50e2888c3ae64b1435c8075f707bb Mon Sep 17 00:00:00 2001 From: Mo8it Date: Thu, 24 Jun 2021 19:39:26 +0200 Subject: [PATCH] Added GroupExperimentModelView --- advlabdb/modelViews.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/advlabdb/modelViews.py b/advlabdb/modelViews.py index bc05e13..0a26024 100644 --- a/advlabdb/modelViews.py +++ b/advlabdb/modelViews.py @@ -333,10 +333,42 @@ class AssistantModelView(SecureModelView): form_excluded_columns = ["experiment_marks"] +class GroupExperimentModelView(SecureModelView): + column_list = ["group", "part_experiment", "appointments", "experiment_marks"] + + def get_query(self): + return ( + super() + .get_query() + .filter( + GroupExperiment.group_id.in_( + [ + g.id + for g in Group.query.filter(Group.part_id.in_([part.id for part in userActiveSemester().parts])) + ] + ) + ) + ) + + def get_count_query(self): + return ( + self.session.query(func.count("*")) + .select_from(self.model) + .filter( + GroupExperiment.group_id.in_( + [ + g.id + for g in Group.query.filter(Group.part_id.in_([part.id for part in userActiveSemester().parts])) + ] + ) + ) + ) + + admin.add_view(StudentModelView(Student, db.session)) admin.add_view(PartStudentModelView(PartStudent, db.session)) admin.add_view(GroupModelView(Group, db.session)) -admin.add_view(SecureModelView(GroupExperiment, db.session)) +admin.add_view(GroupExperimentModelView(GroupExperiment, db.session)) admin.add_view(ExperimentModelView(Experiment, db.session)) admin.add_view(PartExperimentModelView(PartExperiment, db.session)) admin.add_view(AssistantModelView(Assistant, db.session))