diff --git a/atst/forms/org.py b/atst/forms/org.py index dc0c9ff3..9a6c0a29 100644 --- a/atst/forms/org.py +++ b/atst/forms/org.py @@ -1,21 +1,19 @@ from wtforms.fields.html5 import EmailField, TelField from wtforms.fields import RadioField, StringField -from wtforms.validators import Required, Length, Email +from wtforms.validators import Required, Email from wtforms_tornado import Form import pendulum from .fields import DateField -from .validators import DateRange +from .validators import DateRange, PhoneNumber class OrgForm(Form): fname_request = StringField("First Name", validators=[Required()]) lname_request = StringField("Last Name", validators=[Required()]) - email_request = EmailField( - "Email (associated with your CAC)", validators=[Required(), Email()] - ) + email_request = EmailField("Email Address", validators=[Required(), Email()]) - phone_number = TelField("Phone Number", validators=[Required(), Length(min=7)]) + phone_number = TelField("Phone Number", validators=[Required(), PhoneNumber()]) service_branch = StringField("Service Branch or Agency", validators=[Required()]) @@ -28,7 +26,15 @@ class OrgForm(Form): validators=[Required()], ) - designation = StringField("Designation of Person", validators=[Required()]) + designation = RadioField( + "Designation of Person", + choices=[ + ("military", "Military"), + ("civilian", "Civilian"), + ("contractor", "Contractor"), + ], + validators=[Required()], + ) date_latest_training = DateField( "Latest Information Assurance (IA) Training completion date.", diff --git a/atst/forms/validators.py b/atst/forms/validators.py index a7a047de..bb9a08c3 100644 --- a/atst/forms/validators.py +++ b/atst/forms/validators.py @@ -1,3 +1,4 @@ +import re from wtforms.validators import ValidationError import pendulum @@ -27,3 +28,16 @@ def IsNumber(message="Please enter a valid number."): raise ValidationError(message) return _is_number + + +def PhoneNumber(message="Please enter a valid 5 or 10 digit phone number."): + def _is_phone_number(form, field): + digits = re.sub(r"\D", "", field.data) + if len(digits) not in [5, 10]: + raise ValidationError(message) + + match = re.match(r"[\d\-\(\) ]+", field.data) + if not match or match.group() != field.data: + raise ValidationError(message) + + return _is_phone_number diff --git a/templates/requests/screen-2.html.to b/templates/requests/screen-2.html.to index 30f789bc..984d6a15 100644 --- a/templates/requests/screen-2.html.to +++ b/templates/requests/screen-2.html.to @@ -61,13 +61,15 @@ {% end %} -{{ f.designation.label }} -{{ f.designation }} +
+ {{ f.designation.label }} + {{ f.designation(class_="usa-unstyled-list") }} {% for e in f.designation.errors %}
{{ e }}
{% end %} +
{{ f.date_latest_training.label }} {{ f.date_latest_training }}