Refactor to allow validating warnings on a form
This commit is contained in:
@@ -3,5 +3,5 @@ from wtforms_tornado import Form
|
|||||||
|
|
||||||
class ValidatedForm(Form):
|
class ValidatedForm(Form):
|
||||||
|
|
||||||
def validate(self, requests_client=None):
|
def validate_warnings(self, requests_client=None):
|
||||||
return super(ValidatedForm, self).validate()
|
return True
|
||||||
|
@@ -24,28 +24,38 @@ class RequestNew(BaseHandler):
|
|||||||
self.requests_client, screen, post_data=post_data, request_id=request_id
|
self.requests_client, screen, post_data=post_data, request_id=request_id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
rerender_args = dict(
|
||||||
|
f=jedi_flow.form,
|
||||||
|
data=post_data,
|
||||||
|
page=self.page,
|
||||||
|
screens=jedi_flow.screens,
|
||||||
|
current=screen,
|
||||||
|
next_screen=jedi_flow.next_screen,
|
||||||
|
request_id=jedi_flow.request_id,
|
||||||
|
)
|
||||||
|
|
||||||
if jedi_flow.validate():
|
if jedi_flow.validate():
|
||||||
response = yield jedi_flow.create_or_update_request(self.get_current_user())
|
response = yield jedi_flow.create_or_update_request(self.get_current_user())
|
||||||
if response.ok:
|
if response.ok:
|
||||||
if jedi_flow.next_screen >= len(jedi_flow.screens):
|
if jedi_flow.validate_warnings():
|
||||||
where = "/requests"
|
if jedi_flow.next_screen >= len(jedi_flow.screens):
|
||||||
|
where = "/requests"
|
||||||
|
else:
|
||||||
|
where = self.application.default_router.reverse_url(
|
||||||
|
"request_form_update", jedi_flow.next_screen, jedi_flow.request_id
|
||||||
|
)
|
||||||
|
self.redirect(where)
|
||||||
else:
|
else:
|
||||||
where = self.application.default_router.reverse_url(
|
self.render(
|
||||||
"request_form_update", jedi_flow.next_screen, jedi_flow.request_id
|
"requests/screen-%d.html.to" % int(screen),
|
||||||
|
**rerender_args
|
||||||
)
|
)
|
||||||
self.redirect(where)
|
|
||||||
else:
|
else:
|
||||||
self.set_status(response.code)
|
self.set_status(response.code)
|
||||||
else:
|
else:
|
||||||
self.render(
|
self.render(
|
||||||
"requests/screen-%d.html.to" % int(screen),
|
"requests/screen-%d.html.to" % int(screen),
|
||||||
f=jedi_flow.form,
|
**rerender_args
|
||||||
data=post_data,
|
|
||||||
page=self.page,
|
|
||||||
screens=jedi_flow.screens,
|
|
||||||
current=screen,
|
|
||||||
next_screen=jedi_flow.next_screen,
|
|
||||||
request_id=jedi_flow.request_id,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@tornado.web.authenticated
|
@tornado.web.authenticated
|
||||||
@@ -108,7 +118,10 @@ class JEDIRequestFlow(object):
|
|||||||
return self.form_class()()
|
return self.form_class()()
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
return self.form.validate(self.requests_client)
|
return self.form.validate()
|
||||||
|
|
||||||
|
def validate_warnings(self):
|
||||||
|
return self.form.validate_warnings(self.requests_client)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_screen(self):
|
def current_screen(self):
|
||||||
|
@@ -37,7 +37,7 @@ def test_submit_valid_request_form(monkeypatch, http_client, base_url):
|
|||||||
monkeypatch.setattr(
|
monkeypatch.setattr(
|
||||||
"atst.handlers.request_new.RequestNew.check_xsrf_cookie", lambda s: True
|
"atst.handlers.request_new.RequestNew.check_xsrf_cookie", lambda s: True
|
||||||
)
|
)
|
||||||
monkeypatch.setattr("atst.forms.request.RequestForm.validate", lambda s, c: True)
|
monkeypatch.setattr("atst.forms.request.RequestForm.validate", lambda s: True)
|
||||||
|
|
||||||
# this just needs to send a known invalid form value
|
# this just needs to send a known invalid form value
|
||||||
response = yield http_client.fetch(
|
response = yield http_client.fetch(
|
||||||
|
Reference in New Issue
Block a user