atst/atst/forms/poc.py
2018-08-15 11:28:48 -04:00

38 lines
1.2 KiB
Python

from wtforms.fields import StringField, RadioField
from wtforms.fields.html5 import EmailField
from wtforms.validators import Required, Email, Length, Optional
from .forms import ValidatedForm
from .validators import IsNumber
class POCForm(ValidatedForm):
def validate(self, *args, **kwargs):
if self.am_poc.data == "yes":
# Prepend Optional validators so that the validation chain
# halts if no data exists.
self.fname_poc.validators.insert(0, Optional())
self.lname_poc.validators.insert(0, Optional())
self.email_poc.validators.insert(0, Optional())
self.dodid_poc.validators.insert(0, Optional())
return super().validate(*args, **kwargs)
am_poc = RadioField(
"I am the technical POC.",
choices=[("yes", "Yes"), ("no", "No")],
default="no",
validators=[Required()],
)
fname_poc = StringField("POC First Name", validators=[Required()])
lname_poc = StringField("POC Last Name", validators=[Required()])
email_poc = EmailField("POC Email Address", validators=[Required(), Email()])
dodid_poc = StringField(
"DOD ID", validators=[Required(), Length(min=10), IsNumber()]
)