1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-09-19 18:31:16 +00:00

Change year to IntegerField

This commit is contained in:
Mo 2022-04-18 18:37:21 +02:00
parent 8ab38f11e2
commit f5d6e29664

View file

@ -49,7 +49,9 @@ from advlabdb.exceptions import DataBaseException, ModelViewException
from advlabdb.independent_funs import randomPassword from advlabdb.independent_funs import randomPassword
from advlabdb.models import ( from advlabdb.models import (
MAX_MARK, MAX_MARK,
MAX_YEAR,
MIN_MARK, MIN_MARK,
MIN_YEAR,
Admin, Admin,
Appointment, Appointment,
Assistant, Assistant,
@ -98,15 +100,12 @@ class UserView(SecureAdminModelView):
def semesterQueryFactory(): def semesterQueryFactory():
return Semester.query return Semester.query
def activeSemesterDefault():
return userActiveSemester()
email = StringField("Email", validators=[DataRequired(), Email()]) email = StringField("Email", validators=[DataRequired(), Email()])
roles = QuerySelectMultipleField( roles = QuerySelectMultipleField(
"Roles", "Roles",
query_factory=roleQueryFactory, query_factory=roleQueryFactory,
validators=[DataRequired()], validators=[DataRequired()],
default=[Role.query.filter(Role.name == "assistant").first()], default=[user_datastore.find_role("assistant")],
) )
first_name = StringField("First Name", validators=[DataRequired()]) first_name = StringField("First Name", validators=[DataRequired()])
@ -130,7 +129,7 @@ class UserView(SecureAdminModelView):
query_factory=semesterQueryFactory, query_factory=semesterQueryFactory,
allow_blank=True, allow_blank=True,
blank_text="-", blank_text="-",
default=activeSemesterDefault, default=userActiveSemester,
description="Not fixed and users (including assistants) can change it.", description="Not fixed and users (including assistants) can change it.",
) )
@ -266,21 +265,26 @@ class RoleView(SecureAdminModelView):
class SemesterView(SecureAdminModelView): class SemesterView(SecureAdminModelView):
class CreateForm(Form): class CreateForm(Form):
def labelDefault(): def defaultFormLabel():
if userActiveSemester().label == "WS": if userActiveSemester().label == "WS":
return "SS" return "SS"
else: else:
return "WS" return "WS"
def yearDefault(): def defaultFormYear():
activeSemester = userActiveSemester() activeSemester = userActiveSemester()
if activeSemester.label == "WS": if activeSemester.label == "WS":
return activeSemester.year + 1 return activeSemester.year + 1
else: else:
return activeSemester.year return activeSemester.year
label = RadioField("Semester", choices=["WS", "SS"], validators=[DataRequired()], default=labelDefault) label = RadioField("Semester", choices=["WS", "SS"], validators=[DataRequired()], default=defaultFormLabel)
year = StringField("Year", validators=[DataRequired()], default=yearDefault) year = IntegerField(
"Year",
validators=[DataRequired(), NumberRange(MIN_YEAR, MAX_YEAR)],
default=defaultFormYear,
description=f"Between {MIN_YEAR} and {MAX_YEAR}",
)
transfer_parts = BooleanField( transfer_parts = BooleanField(
"Transfer parts", "Transfer parts",
description="This option transfers the parts you have in your current active semester. Make sure that your semester is the last semester before creating a new one (recommended)!", description="This option transfers the parts you have in your current active semester. Make sure that your semester is the last semester before creating a new one (recommended)!",
@ -713,7 +717,7 @@ class SemesterExperimentView(SecureAdminModelView):
oral_weighting = DecimalField( oral_weighting = DecimalField(
"Oral weighting", "Oral weighting",
validators=[DataRequired(), NumberRange(min=0, max=1)], validators=[DataRequired(), NumberRange(0, 1)],
default=0.5, default=0.5,
description="Between 0 and 1", description="Between 0 and 1",
places=2, places=2,
@ -721,7 +725,7 @@ class SemesterExperimentView(SecureAdminModelView):
) )
protocol_weighting = DecimalField( protocol_weighting = DecimalField(
"Protocol weighting", "Protocol weighting",
validators=[DataRequired(), NumberRange(min=0, max=1)], validators=[DataRequired(), NumberRange(0, 1)],
default=0.5, default=0.5,
description="Between 0 and 1. Oral and protocol weightings have to add to 1! Both are rounded to 2 decimal digits.", description="Between 0 and 1. Oral and protocol weightings have to add to 1! Both are rounded to 2 decimal digits.",
places=2, places=2,
@ -729,7 +733,7 @@ class SemesterExperimentView(SecureAdminModelView):
) )
final_weighting = DecimalField( final_weighting = DecimalField(
"Final weighting", "Final weighting",
validators=[DataRequired(), NumberRange(min=0, max=1)], validators=[DataRequired(), NumberRange(0, 1)],
default=1.0, default=1.0,
description="Between 0 and 1", description="Between 0 and 1",
places=2, places=2,
@ -1277,12 +1281,12 @@ class ExperimentMarkView(SecureAdminModelView):
class EditForm(Form): class EditForm(Form):
oral_mark = IntegerField( oral_mark = IntegerField(
"Oral Mark", "Oral Mark",
validators=[NumberRange(min=MIN_MARK, max=MAX_MARK), Optional()], validators=[Optional(), NumberRange(MIN_MARK, MAX_MARK)],
description=f"Between {MIN_MARK} and {MAX_MARK}", description=f"Between {MIN_MARK} and {MAX_MARK}",
) )
protocol_mark = IntegerField( protocol_mark = IntegerField(
"Protocol Mark", "Protocol Mark",
validators=[NumberRange(min=MIN_MARK, max=MAX_MARK), Optional()], validators=[Optional(), NumberRange(MIN_MARK, MAX_MARK)],
description=f"Between {MIN_MARK} and {MAX_MARK}", description=f"Between {MIN_MARK} and {MAX_MARK}",
) )