Source code for app.view.forms.upload_step4_form

from wtforms import (
    DecimalField,
    FieldList,
    FormField,
    SelectField,
    SelectMultipleField,
    StringField,
    URLField,
)
from wtforms.validators import DataRequired, Optional, Length

from app.view.forms.base_form import BaseForm


[docs] class UploadStep4Form(BaseForm):
[docs] class Meta:
[docs] csrf_time_limit = None
[docs] class CompartmentForm(BaseForm):
[docs] class Meta:
[docs] csrf = False
[docs] name = StringField('name', validators=[DataRequired()])
[docs] mediumName = StringField('mediumName', validators=[Length(max=100)])
[docs] mediumUrl = URLField('mediumUrl', validators=[Length(max=100)])
[docs] volume = DecimalField('volume', validators=[Optional()])
[docs] pressure = DecimalField('pressure', validators=[Optional()])
[docs] stirringSpeed = DecimalField('stirringSpeed', validators=[Optional()])
[docs] stirringMode = SelectField('stirringMode', choices=[ ('', ""), ('linear', "Linear"), ('orbital', "Orbital"), ('vibrational', "Vibrational"), ])
[docs] O2 = DecimalField('O2', validators=[Optional()])
[docs] CO2 = DecimalField('CO2', validators=[Optional()])
[docs] H2 = DecimalField('H2', validators=[Optional()])
[docs] N2 = DecimalField('N2', validators=[Optional()])
[docs] inoculumConcentration = DecimalField('inoculumConcentration', validators=[Optional()], places=3)
[docs] inoculumVolume = DecimalField('inoculumVolume', validators=[Optional()])
[docs] initialPh = DecimalField('initialPh', validators=[Optional()])
[docs] initialTemperature = DecimalField('initialTemperature', validators=[Optional()])
[docs] dilutionRate = DecimalField('dilutionRate', validators=[Optional()])
[docs] class CommunityForm(BaseForm):
[docs] class Meta:
[docs] csrf = False
[docs] name = StringField('name', validators=[DataRequired()])
[docs] strainIdentifiers = SelectMultipleField('strainIdentifiers', choices=[], validate_choice=False)
[docs] compartments = FieldList(FormField(CompartmentForm))
[docs] communities = FieldList(FormField(CommunityForm))
[docs] def validate_compartments(self, field): names = [c['name'] for c in field.data] self._validate_uniqueness("compartment_names", "Compartment names are not unique", names)
[docs] def validate_communities(self, field): names = [c['name'] for c in field.data] self._validate_uniqueness("community_names", "Community names are not unique", names)