1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-12-20 23:41:20 +00:00

Fixed customInit for GroupExperiment

This commit is contained in:
Mo 2021-07-13 18:41:00 +02:00
parent 91547a7487
commit b2655e2023
2 changed files with 13 additions and 5 deletions

View file

@ -5,7 +5,7 @@ from flask_admin.model.template import EndpointLinkRowAction
from flask_security import current_user, hash_password
from sqlalchemy import func
from wtforms import Form, BooleanField, SelectField, TextField, RadioField
from wtforms.validators import DataRequired, Email, Optional
from wtforms.validators import DataRequired, Email, Optional, URL
from flask_admin.contrib.sqla.fields import QuerySelectMultipleField, QuerySelectField
from flask_admin.helpers import get_form_data
from wtforms.fields.html5 import DateField
@ -40,14 +40,14 @@ from advlabdb.exceptions import ModelViewValidatorException
class UserView(SecureModelView):
column_list = ["email", "active", "roles", "assistant", "active_semester"]
column_searchable_list = ["email"]
column_filters = ["active"]
form_columns = ["email", "active", "roles"]
column_filters = ["active", "active_semester"]
form_columns = ["email", "active", "roles", "active_semester"]
column_editable_list = ["active"]
form_args = {
"email": {"validators": [Email()]},
"active": {"default": True},
"roles": {"validators": [DataRequired(message="A role is required!")]},
"roles": {"default": [Role.query.filter(Role.name == "assistant").first()], "validators": [DataRequired()]},
}
def create_model(self, form):
@ -340,6 +340,10 @@ class ExperimentView(SecureModelView):
]
column_editable_list = ["active"]
form_excluded_columns = ["semester_experiments"]
form_args = {"wiki_link": {"validators": [URL()]}}
class SemesterExperimentView(SecureModelView):
column_list = ["experiment", "semester", "assistants"]

View file

@ -101,7 +101,11 @@ class GroupExperiment(db.Model):
student = partStudent.student
for partStudent in student.part_students:
for experimentMark in partStudent.experiment_marks:
if experimentMark.group_experiment.semester_experiment.experiment == semester_experiment.experiment:
if (
(experimentMark.oral_mark or experimentMark.protocol_mark)
and experimentMark.group_experiment.semester_experiment.experiment
== semester_experiment.experiment
):
raise Exception(
f"{student} has already done {semester_experiment.experiment} in {partStudent.part} and had {experimentMark}!"
)