Perform extra validation on financial verification step
This commit is contained in:
parent
2bca2f9ac8
commit
f1ba2bcba6
@ -1,13 +1,40 @@
|
|||||||
|
import tornado
|
||||||
|
from tornado.gen import Return
|
||||||
from wtforms.fields.html5 import EmailField
|
from wtforms.fields.html5 import EmailField
|
||||||
from wtforms.fields import StringField, SelectField
|
from wtforms.fields import StringField, SelectField
|
||||||
|
from wtforms.form import Form
|
||||||
from wtforms.validators import Required, Email
|
from wtforms.validators import Required, Email
|
||||||
|
|
||||||
from .fields import NewlineListField
|
from .fields import NewlineListField
|
||||||
from .forms import ValidatedForm
|
from .forms import ValidatedForm
|
||||||
|
|
||||||
|
|
||||||
|
@tornado.gen.coroutine
|
||||||
|
def validate_pe_id(field, existing_request, fundz_client):
|
||||||
|
response = yield fundz_client.get(
|
||||||
|
"/pe-number/{}".format(field.data),
|
||||||
|
raise_error=False,
|
||||||
|
)
|
||||||
|
if not response.ok:
|
||||||
|
field.errors.append(
|
||||||
|
"We couldn't find that PE number, but if you have double checked "
|
||||||
|
"it you can submit anyway. Your request will need to go through a "
|
||||||
|
"manual review."
|
||||||
|
)
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class FinancialForm(ValidatedForm):
|
class FinancialForm(ValidatedForm):
|
||||||
|
|
||||||
|
@tornado.gen.coroutine
|
||||||
|
def perform_extra_validation(self, existing_request, fundz_client):
|
||||||
|
valid = True
|
||||||
|
if existing_request['pe_id'] != self.pe_id.data:
|
||||||
|
valid = yield validate_pe_id(self.pe_id, existing_request, fundz_client)
|
||||||
|
raise Return(valid)
|
||||||
|
|
||||||
task_order_id = StringField(
|
task_order_id = StringField(
|
||||||
"Task Order Number associated with this request.", validators=[Required()]
|
"Task Order Number associated with this request.", validators=[Required()]
|
||||||
)
|
)
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
|
import tornado
|
||||||
|
from tornado.gen import Return
|
||||||
from wtforms_tornado import Form
|
from wtforms_tornado import Form
|
||||||
|
|
||||||
|
|
||||||
class ValidatedForm(Form):
|
class ValidatedForm(Form):
|
||||||
|
|
||||||
def validate_warnings(self, *args, **kwargs):
|
@tornado.gen.coroutine
|
||||||
return True
|
def perform_extra_validation(self, *args, **kwargs):
|
||||||
|
"""A coroutine that performs any applicable extra validation. Must
|
||||||
|
return True if the form is valid or False otherwise."""
|
||||||
|
raise Return(True)
|
||||||
|
@ -53,7 +53,8 @@ class RequestNew(BaseHandler):
|
|||||||
if jedi_flow.validate():
|
if jedi_flow.validate():
|
||||||
response = yield jedi_flow.create_or_update_request()
|
response = yield jedi_flow.create_or_update_request()
|
||||||
if response.ok:
|
if response.ok:
|
||||||
if jedi_flow.validate_warnings():
|
valid = yield jedi_flow.validate_warnings()
|
||||||
|
if valid:
|
||||||
if jedi_flow.next_screen >= len(jedi_flow.screens):
|
if jedi_flow.next_screen >= len(jedi_flow.screens):
|
||||||
where = "/requests"
|
where = "/requests"
|
||||||
else:
|
else:
|
||||||
@ -143,11 +144,13 @@ class JEDIRequestFlow(object):
|
|||||||
def validate(self):
|
def validate(self):
|
||||||
return self.form.validate()
|
return self.form.validate()
|
||||||
|
|
||||||
|
@tornado.gen.coroutine
|
||||||
def validate_warnings(self):
|
def validate_warnings(self):
|
||||||
return self.form.validate_warnings(
|
valid = yield self.form.perform_extra_validation(
|
||||||
self.existing_request.get('body', {}).get(self.form_section),
|
self.existing_request.get('body', {}).get(self.form_section),
|
||||||
self.fundz_client,
|
self.fundz_client,
|
||||||
)
|
)
|
||||||
|
return valid
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_screen(self):
|
def current_screen(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user