Source code for upload_step4_form
from wtforms import (
DecimalField,
FieldList,
FormField,
SelectField,
SelectMultipleField,
StringField,
URLField,
)
from wtforms.validators import DataRequired, Optional
from app.view.forms.base_form import BaseForm
[docs]
class UploadStep4Form(BaseForm):
[docs]
class CompartmentForm(BaseForm):
[docs]
stirringMode = SelectField('stirringMode', choices=[
('', ""),
('linear', "Linear"),
('orbital', "Orbital"),
('vibrational', "Vibrational"),
])
[docs]
inoculumConcentration = DecimalField('inoculumConcentration', validators=[Optional()], places=3)
[docs]
class CommunityForm(BaseForm):
[docs]
strainIdentifiers = SelectMultipleField('strainIdentifiers', choices=[], validate_choice=False)
[docs]
def validate_compartments(self, field):
names = [c['name'] for c in field.data]
self._validate_uniqueness("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 are not unique", names)