From c0bcdc4da59c056bc54be7b772a5c7bd03e6942d Mon Sep 17 00:00:00 2001 From: Mo8it Date: Mon, 27 Jun 2022 22:12:52 +0200 Subject: [PATCH] Adjust GroupExperiment view --- advlabdb/assistantModelViews.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/advlabdb/assistantModelViews.py b/advlabdb/assistantModelViews.py index 19674c1..d042774 100644 --- a/advlabdb/assistantModelViews.py +++ b/advlabdb/assistantModelViews.py @@ -50,14 +50,35 @@ class AssistantGroupExperimentView(SecureAssistantModelView): column_list = [ "semester_experiment.experiment", "group.number", + "group.part_students", + "appointments", + # TODO: "final_experiment_marks_set", "note", ] column_labels = { "semester_experiment.experiment": "Experiment", "group.number": "Group number", + "group.part_students": "Students", } + + 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 + + def appointments_formatter(view, context, model, name): + appointments = deep_getattr(model, name) + if appointments is not None: + return ", ".join([str(appointment.date) for appointment in appointments]) + + return attr + column_formatters = { "semester_experiment.experiment": str_formatter, + "group.part_students": part_students_formatter, + "appointments": appointments_formatter, } def query_modifier(self, query): @@ -121,6 +142,8 @@ class AssistantGroupExperimentView(SecureAssistantModelView): db.session.rollback() + final_experiment_marks = [experiment_mark.final_experiment_mark for experiment_mark in experiment_marks] + return self.render( "assistant_group_experiment_form.html", form=form, @@ -128,7 +151,10 @@ class AssistantGroupExperimentView(SecureAssistantModelView): group_number=group_experiment.group.number, appointment_fields=appointment_fields, experiment_mark_zip=zip( - experiment_mark_students, oral_experiment_mark_fields, protocol_experiment_mark_fields + experiment_mark_students, + oral_experiment_mark_fields, + protocol_experiment_mark_fields, + final_experiment_marks, ), )