mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
No need for a factory
This commit is contained in:
parent
34ee938636
commit
cc3f230a3a
2 changed files with 8 additions and 13 deletions
|
@ -16,17 +16,18 @@ from wtforms import Form
|
|||
from wtforms.fields import (
|
||||
BooleanField,
|
||||
DateField,
|
||||
DecimalField,
|
||||
IntegerField,
|
||||
RadioField,
|
||||
SelectField,
|
||||
StringField,
|
||||
)
|
||||
from wtforms.validators import URL, DataRequired, Email, NumberRange, Optional
|
||||
from wtforms.widgets import NumberInput
|
||||
|
||||
from advlabdb import adminSpace, app, assistantSpace, db, user_datastore
|
||||
from advlabdb.configUtils import getConfig
|
||||
from advlabdb.customClasses import (
|
||||
CustomDecimalFieldFactory,
|
||||
CustomIdEndpointLinkRowAction,
|
||||
SecureAdminBaseView,
|
||||
SecureAdminModelView,
|
||||
|
@ -696,26 +697,29 @@ class SemesterExperimentView(SecureAdminModelView):
|
|||
blank_text="-",
|
||||
)
|
||||
|
||||
oral_weighting = CustomDecimalFieldFactory(0.01)(
|
||||
oral_weighting = DecimalField(
|
||||
"Oral weighting",
|
||||
validators=[DataRequired(), NumberRange(min=0, max=1)],
|
||||
default=0.5,
|
||||
description="Between 0 and 1",
|
||||
places=2,
|
||||
widget=NumberInput(step=0.01),
|
||||
)
|
||||
protocol_weighting = CustomDecimalFieldFactory(0.01)(
|
||||
protocol_weighting = DecimalField(
|
||||
"Protocol weighting",
|
||||
validators=[DataRequired(), NumberRange(min=0, max=1)],
|
||||
default=0.5,
|
||||
description="Between 0 and 1. Oral and protocol weightings have to add to 1! Both are rounded to 2 decimal digits.",
|
||||
places=2,
|
||||
widget=NumberInput(step=0.01),
|
||||
)
|
||||
final_weighting = CustomDecimalFieldFactory(0.01)(
|
||||
final_weighting = DecimalField(
|
||||
"Final weighting",
|
||||
validators=[DataRequired(), NumberRange(min=0, max=1)],
|
||||
default=1.0,
|
||||
description="Between 0 and 1",
|
||||
places=2,
|
||||
widget=NumberInput(step=0.01),
|
||||
)
|
||||
|
||||
assistants = QuerySelectMultipleField("Assistants", query_factory=assistantQueryFactory)
|
||||
|
|
|
@ -5,8 +5,6 @@ from flask_admin.model.helpers import get_mdict_item_or_list
|
|||
from flask_admin.model.template import EndpointLinkRowAction
|
||||
from flask_security import current_user
|
||||
from sqlalchemy import and_
|
||||
from wtforms.fields import DecimalField
|
||||
from wtforms.widgets import NumberInput
|
||||
|
||||
from advlabdb.exceptions import DataBaseException, ModelViewException
|
||||
from advlabdb.models import (
|
||||
|
@ -271,10 +269,3 @@ class CustomIdEndpointLinkRowAction(EndpointLinkRowAction):
|
|||
|
||||
def render(self, context, row_id, row):
|
||||
return super().render(context, self.customId(row), row)
|
||||
|
||||
|
||||
def CustomDecimalFieldFactory(step):
|
||||
class CustomDecimalField(DecimalField):
|
||||
widget = NumberInput(step=step)
|
||||
|
||||
return CustomDecimalField
|
||||
|
|
Loading…
Reference in a new issue