Merge pull request #95 from dod-ccpo/financial-verification
Move financial verification to its own process away from the _Request Form_ flow
This commit is contained in:
17
atst/app.py
17
atst/app.py
@@ -9,6 +9,7 @@ from atst.handlers.root import Root
|
||||
from atst.handlers.login_redirect import LoginRedirect
|
||||
from atst.handlers.workspace import Workspace
|
||||
from atst.handlers.request import Request
|
||||
from atst.handlers.request_financial_verification import RequestFinancialVerification
|
||||
from atst.handlers.request_new import RequestNew
|
||||
from atst.handlers.request_submit import RequestsSubmit
|
||||
from atst.handlers.dev import Dev
|
||||
@@ -91,6 +92,22 @@ def make_app(config, deps, **kwargs):
|
||||
{"requests_client": deps["requests_client"]},
|
||||
name="requests_submit",
|
||||
),
|
||||
url(
|
||||
r"/requests/verify/(\S+)",
|
||||
RequestFinancialVerification,
|
||||
{
|
||||
"page": "financial_verification",
|
||||
"requests_client": deps["requests_client"],
|
||||
"fundz_client": deps["fundz_client"],
|
||||
},
|
||||
name="financial_verification",
|
||||
),
|
||||
url(
|
||||
r"/requests/financial_verification_submitted",
|
||||
Main,
|
||||
{"page": "requests/financial_verification_submitted"},
|
||||
name="financial_verification_submitted",
|
||||
),
|
||||
url(r"/users", Main, {"page": "users"}, name="users"),
|
||||
url(r"/reports", Main, {"page": "reports"}, name="reports"),
|
||||
url(r"/calculator", Main, {"page": "calculator"}, name="calculator"),
|
||||
|
75
atst/handlers/request_financial_verification.py
Normal file
75
atst/handlers/request_financial_verification.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import tornado
|
||||
|
||||
from atst.handler import BaseHandler
|
||||
from atst.forms.financial import FinancialForm
|
||||
|
||||
|
||||
class RequestFinancialVerification(BaseHandler):
|
||||
def initialize(self, page, requests_client, fundz_client):
|
||||
self.page = page
|
||||
self.requests_client = requests_client
|
||||
self.fundz_client = fundz_client
|
||||
|
||||
@tornado.gen.coroutine
|
||||
def get_existing_request(self, request_id):
|
||||
if request_id is None:
|
||||
return {}
|
||||
request = yield self.requests_client.get("/requests/{}".format(request_id))
|
||||
return request.json
|
||||
|
||||
@tornado.web.authenticated
|
||||
@tornado.gen.coroutine
|
||||
def get(self, request_id=None):
|
||||
existing_request = yield self.get_existing_request(request_id)
|
||||
form = FinancialForm(data=existing_request['body'].get('financial_verification'))
|
||||
self.render(
|
||||
"requests/financial_verification.html.to",
|
||||
page=self.page,
|
||||
f=form,
|
||||
request_id=request_id,
|
||||
)
|
||||
|
||||
@tornado.gen.coroutine
|
||||
def update_request(self, request_id, form_data):
|
||||
request_data = {
|
||||
"creator_id": self.current_user["id"],
|
||||
"request": {"financial_verification": form_data},
|
||||
}
|
||||
response = yield self.requests_client.patch(
|
||||
"/requests/{}".format(request_id), json=request_data
|
||||
)
|
||||
return response
|
||||
|
||||
@tornado.web.authenticated
|
||||
@tornado.gen.coroutine
|
||||
def post(self, request_id=None):
|
||||
self.check_xsrf_cookie()
|
||||
post_data = self.request.arguments
|
||||
existing_request = yield self.get_existing_request(request_id)
|
||||
form = FinancialForm(post_data)
|
||||
|
||||
rerender_args = dict(request_id=request_id, f=form)
|
||||
|
||||
if form.validate():
|
||||
response = yield self.update_request(request_id, form.data)
|
||||
if response.ok:
|
||||
valid = yield form.perform_extra_validation(
|
||||
existing_request.get('body', {}).get('financial_verification'),
|
||||
self.fundz_client
|
||||
)
|
||||
if valid:
|
||||
self.redirect(
|
||||
self.application.default_router.reverse_url("financial_verification_submitted")
|
||||
)
|
||||
else:
|
||||
self.render(
|
||||
"requests/financial_verification.html.to",
|
||||
**rerender_args
|
||||
)
|
||||
else:
|
||||
self.set_status(response.code)
|
||||
else:
|
||||
self.render(
|
||||
"requests/financial_verification.html.to",
|
||||
**rerender_args
|
||||
)
|
@@ -6,7 +6,6 @@ from atst.forms.request import RequestForm
|
||||
from atst.forms.org import OrgForm
|
||||
from atst.forms.poc import POCForm
|
||||
from atst.forms.review import ReviewForm
|
||||
from atst.forms.financial import FinancialForm
|
||||
|
||||
|
||||
class RequestNew(BaseHandler):
|
||||
@@ -221,12 +220,6 @@ class JEDIRequestFlow(object):
|
||||
"form": ReviewForm,
|
||||
"show":True,
|
||||
},
|
||||
{
|
||||
"title": "Financial Verification",
|
||||
"section": "financial_verification",
|
||||
"form": FinancialForm,
|
||||
"show": self.request and self.request["status"] == "approved",
|
||||
},
|
||||
]
|
||||
|
||||
@tornado.gen.coroutine
|
||||
|
Reference in New Issue
Block a user