mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
Further debloat assistantSpace
This commit is contained in:
parent
227c960653
commit
760cf05f26
1 changed files with 26 additions and 7 deletions
|
@ -6,7 +6,13 @@ from wtforms.fields import BooleanField, IntegerField, StringField
|
||||||
from wtforms.validators import NumberRange, Optional
|
from wtforms.validators import NumberRange, Optional
|
||||||
|
|
||||||
from . import assistantSpace, db
|
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 .customClasses import SecureAssistantBaseView, SecureAssistantModelView
|
||||||
from .exceptions import DataBaseException, ModelViewException
|
from .exceptions import DataBaseException, ModelViewException
|
||||||
from .model_dependent_funs import initActiveSemesterMenuLinks
|
from .model_dependent_funs import initActiveSemesterMenuLinks
|
||||||
|
@ -47,6 +53,18 @@ class AssistantAppointmentView(SecureAssistantModelView):
|
||||||
"special": "A special appointment should take place in the semester break",
|
"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):
|
def query_modifier(self, query):
|
||||||
return (
|
return (
|
||||||
query.join(GroupExperiment)
|
query.join(GroupExperiment)
|
||||||
|
@ -78,7 +96,7 @@ class AssistantExperimentMarkView(SecureAssistantModelView):
|
||||||
"oral_mark",
|
"oral_mark",
|
||||||
"protocol_mark",
|
"protocol_mark",
|
||||||
"final_experiment_mark",
|
"final_experiment_mark",
|
||||||
"group_experiment.semester_experiment.experiment",
|
"group_experiment.semester_experiment.experiment.number",
|
||||||
"part_student.student",
|
"part_student.student",
|
||||||
"part_student.group.number",
|
"part_student.group.number",
|
||||||
"part_student.student.uni_email",
|
"part_student.student.uni_email",
|
||||||
|
@ -88,7 +106,7 @@ class AssistantExperimentMarkView(SecureAssistantModelView):
|
||||||
"admin",
|
"admin",
|
||||||
]
|
]
|
||||||
column_labels = {
|
column_labels = {
|
||||||
"group_experiment.semester_experiment.experiment": "Experiment",
|
"group_experiment.semester_experiment.experiment.number": "Experiment number",
|
||||||
"part_student.student": "Student",
|
"part_student.student": "Student",
|
||||||
"part_student.group.number": "Group number",
|
"part_student.group.number": "Group number",
|
||||||
"part_student.student.uni_email": "Uni Email",
|
"part_student.student.uni_email": "Uni Email",
|
||||||
|
@ -111,10 +129,11 @@ class AssistantExperimentMarkView(SecureAssistantModelView):
|
||||||
"part_student.student.contact_email",
|
"part_student.student.contact_email",
|
||||||
]
|
]
|
||||||
|
|
||||||
column_formatters = dict(
|
column_formatters = {
|
||||||
oral_mark=missing_formatter,
|
"oral_mark": missing_formatter,
|
||||||
protocol_mark=missing_formatter,
|
"protocol_mark": missing_formatter,
|
||||||
)
|
"part_student.part": str_without_semester_formatter,
|
||||||
|
}
|
||||||
|
|
||||||
column_default_sort = [("oral_mark", False), ("protocol_mark", False)]
|
column_default_sort = [("oral_mark", False), ("protocol_mark", False)]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue