Add simple phone number validation

This commit is contained in:
richard-dds 2018-07-05 16:39:32 -04:00
parent af771474b2
commit d98acc67e9
3 changed files with 21 additions and 6 deletions

View File

@ -1,10 +1,10 @@
from wtforms.fields.html5 import EmailField, TelField from wtforms.fields.html5 import EmailField, TelField
from wtforms.fields import RadioField, StringField from wtforms.fields import RadioField, StringField
from wtforms.validators import Required, Length, Email from wtforms.validators import Required, Email
from wtforms_tornado import Form from wtforms_tornado import Form
import pendulum import pendulum
from .fields import DateField from .fields import DateField
from .validators import DateRange from .validators import DateRange, PhoneNumber
class OrgForm(Form): class OrgForm(Form):
@ -12,9 +12,8 @@ class OrgForm(Form):
lname_request = StringField("Last Name", validators=[Required()]) lname_request = StringField("Last Name", validators=[Required()])
email_request = EmailField("Email Address", 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()]) service_branch = StringField("Service Branch or Agency", validators=[Required()])

View File

@ -1,3 +1,4 @@
import re
from wtforms.validators import ValidationError from wtforms.validators import ValidationError
import pendulum import pendulum
@ -27,3 +28,16 @@ def IsNumber(message="Please enter a valid number."):
raise ValidationError(message) raise ValidationError(message)
return _is_number 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

View File

@ -61,13 +61,15 @@
{% end %} {% end %}
</fieldset> </fieldset>
<fieldset class="usa-fieldset-inputs">
{{ f.designation.label }} {{ f.designation.label }}
{{ f.designation }} {{ f.designation(class_="usa-unstyled-list") }}
{% for e in f.designation.errors %} {% for e in f.designation.errors %}
<div class="usa-input-error-message"> <div class="usa-input-error-message">
{{ e }} {{ e }}
</div> </div>
{% end %} {% end %}
</fieldset>
{{ f.date_latest_training.label }} {{ f.date_latest_training.label }}
{{ f.date_latest_training }} {{ f.date_latest_training }}