1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-11-08 21:21:06 +00:00

Added some editables

This commit is contained in:
Mo 2021-07-30 23:42:20 +02:00
parent 85606123a5
commit c0ffa136f7

View file

@ -8,7 +8,7 @@ from flask_security import admin_change_password, current_user, hash_password
from sqlalchemy import func, or_
from wtforms import BooleanField, Form, RadioField, SelectField, TextField
from wtforms.fields.html5 import DateField
from wtforms.validators import URL, DataRequired, Email, Optional
from wtforms.validators import URL, DataRequired, Email, Optional, NumberRange
from advlabdb import adminSpace, app, db, user_datastore
from advlabdb.configUtils import getConfig
@ -559,6 +559,7 @@ class AppointmentView(SecureAdminModelView):
"group_experiment.semester_experiment.experiment",
"assistant",
]
column_editable_list = ["date", "special"]
def queryFilter(self):
return Appointment.group_experiment.has(
@ -572,7 +573,12 @@ class AppointmentView(SecureAdminModelView):
def update_model(self, form, model):
try:
model.customUpdate(form.date.data, form.special.data, form.assistant.data, form.group_experiment.data)
if not form.date:
model.customUpdateSpecial(form.special.data)
elif not form.special:
model.customUpdateDate(form.date.data)
else:
model.customUpdate(form.date.data, form.special.data, form.assistant.data, form.group_experiment.data)
self.on_model_change(form, model, False)
self.session.commit()
@ -580,7 +586,6 @@ class AppointmentView(SecureAdminModelView):
flash(str(ex), "error")
self.session.rollback()
return False
else:
self.after_model_change(form, model, False)
@ -622,25 +627,33 @@ class ExperimentMarkView(SecureAdminModelView):
form = CreateForm
column_editable_list = ["oral_mark", "protocol_mark"]
form_args = {
"oral_mark": {"validators": [NumberRange(0, 15)]},
"protocol_mark": {"validators": [NumberRange(0, 15)]},
}
column_filters = [
StudentIdFilter(PartStudent.id, "Student / ID"),
"part_student.student",
"group_experiment.group",
"group_experiment.semester_experiment.semester",
"group_experiment.semester_experiment.experiment",
"assistant",
"edited_by_admin",
]
column_default_sort = [("oral_mark", False), ("protocol_mark", False)]
def queryFilter(self=None):
def queryFilter(self):
return ExperimentMark.group_experiment.has(
GroupExperiment.semester_experiment.has(SemesterExperiment.semester == userActiveSemester())
)
def checkForm(form):
if form.oral_mark.data == -1:
if form.oral_mark and form.oral_mark.data == -1:
form.oral_mark.data = None
if form.protocol_mark.data == -1:
if form.protocol_mark and form.protocol_mark.data == -1:
form.protocol_mark.data = None
return form