From 760cf05f264edf590afad13560b034ee4917ea68 Mon Sep 17 00:00:00 2001 From: Mo8it Date: Wed, 1 Jun 2022 23:57:28 +0200 Subject: [PATCH] Further debloat assistantSpace --- advlabdb/assistantModelViews.py | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/advlabdb/assistantModelViews.py b/advlabdb/assistantModelViews.py index bf26975..8f0a3ce 100644 --- a/advlabdb/assistantModelViews.py +++ b/advlabdb/assistantModelViews.py @@ -6,7 +6,13 @@ from wtforms.fields import BooleanField, IntegerField, StringField from wtforms.validators import NumberRange, Optional from . import assistantSpace, db -from .advlabdb_independent_funs import flashRandomPassword, missing_formatter +from .advlabdb_independent_funs import ( + deep_getattr, + flashRandomPassword, + missing_formatter, + str_formatter, + str_without_semester_formatter, +) from .customClasses import SecureAssistantBaseView, SecureAssistantModelView from .exceptions import DataBaseException, ModelViewException from .model_dependent_funs import initActiveSemesterMenuLinks @@ -47,6 +53,18 @@ class AssistantAppointmentView(SecureAssistantModelView): "special": "A special appointment should take place in the semester break", } + def part_students_formatter(view, context, model, name): + part_students = deep_getattr(model, name) + if part_students is not None: + return ", ".join([str(part_student.student) for part_student in part_students]) + + return attr + + column_formatters = { + "group_experiment.semester_experiment.experiment": str_formatter, + "group_experiment.group.part_students": part_students_formatter, + } + def query_modifier(self, query): return ( query.join(GroupExperiment) @@ -78,7 +96,7 @@ class AssistantExperimentMarkView(SecureAssistantModelView): "oral_mark", "protocol_mark", "final_experiment_mark", - "group_experiment.semester_experiment.experiment", + "group_experiment.semester_experiment.experiment.number", "part_student.student", "part_student.group.number", "part_student.student.uni_email", @@ -88,7 +106,7 @@ class AssistantExperimentMarkView(SecureAssistantModelView): "admin", ] column_labels = { - "group_experiment.semester_experiment.experiment": "Experiment", + "group_experiment.semester_experiment.experiment.number": "Experiment number", "part_student.student": "Student", "part_student.group.number": "Group number", "part_student.student.uni_email": "Uni Email", @@ -111,10 +129,11 @@ class AssistantExperimentMarkView(SecureAssistantModelView): "part_student.student.contact_email", ] - column_formatters = dict( - oral_mark=missing_formatter, - protocol_mark=missing_formatter, - ) + column_formatters = { + "oral_mark": missing_formatter, + "protocol_mark": missing_formatter, + "part_student.part": str_without_semester_formatter, + } column_default_sort = [("oral_mark", False), ("protocol_mark", False)]