Approve request, create workspace after fin. verification

This commit is contained in:
richard-dds 2018-08-21 13:06:12 -04:00
parent 81619e07eb
commit 18cd1b4473
3 changed files with 23 additions and 7 deletions

View File

@ -6,6 +6,7 @@ from sqlalchemy.orm.attributes import flag_modified
from atst.models.request import Request from atst.models.request import Request
from atst.models.request_status_event import RequestStatusEvent, RequestStatus from atst.models.request_status_event import RequestStatusEvent, RequestStatus
from atst.domain.workspaces import Workspaces
from atst.database import db from atst.database import db
from .exceptions import NotFoundError from .exceptions import NotFoundError
@ -114,6 +115,15 @@ class Requests(object):
db.session.add(request) db.session.add(request)
db.session.commit() db.session.commit()
return request
@classmethod
def update_financial_verification(cls, request_id, data):
updated_request = Requests.update(request_id, {"financial_verification": data})
approved_request = Requests.set_status(updated_request, RequestStatus.APPROVED)
workspace = Workspaces.create(approved_request)
return workspace
@classmethod @classmethod
def set_status(cls, request: Request, status: RequestStatus): def set_status(cls, request: Request, status: RequestStatus):
status_event = RequestStatusEvent(new_status=status) status_event = RequestStatusEvent(new_status=status)

View File

@ -31,17 +31,23 @@ def update_financial_verification(request_id):
existing_request = Requests.get(request_id) existing_request = Requests.get(request_id)
form = financial_form(post_data) form = financial_form(post_data)
rerender_args = dict(request_id=request_id, f=form, extended=http_request.args.get("extended")) rerender_args = dict(
request_id=request_id, f=form, extended=http_request.args.get("extended")
)
if form.validate(): if form.validate():
request_data = {"financial_verification": form.data}
valid = form.perform_extra_validation( valid = form.perform_extra_validation(
existing_request.body.get("financial_verification") existing_request.body.get("financial_verification")
) )
Requests.update(request_id, request_data) new_workspace = Requests.update_financial_verification(request_id, post_data)
if valid: if valid:
return redirect(url_for("requests.financial_verification_submitted")) return redirect(
url_for(
"workspaces.workspace_projects",
workspace_id=new_workspace.id,
modal=True,
)
)
else: else:
form.reset() form.reset()
return render_template( return render_template(

View File

@ -69,7 +69,7 @@ class TestPENumberInForm:
response = self.submit_data(client, data) response = self.submit_data(client, data)
assert response.status_code == 302 assert response.status_code == 302
assert "/requests/financial_verification_submitted" in response.headers.get("Location") assert "/workspaces" in response.headers.get("Location")
def test_submit_request_form_with_new_valid_pe_id(self, monkeypatch, client): def test_submit_request_form_with_new_valid_pe_id(self, monkeypatch, client):
self._set_monkeypatches(monkeypatch) self._set_monkeypatches(monkeypatch)
@ -81,7 +81,7 @@ class TestPENumberInForm:
response = self.submit_data(client, data) response = self.submit_data(client, data)
assert response.status_code == 302 assert response.status_code == 302
assert "/requests/financial_verification_submitted" in response.headers.get("Location") assert "/workspaces" in response.headers.get("Location")
def test_submit_request_form_with_missing_pe_id(self, monkeypatch, client): def test_submit_request_form_with_missing_pe_id(self, monkeypatch, client):
self._set_monkeypatches(monkeypatch) self._set_monkeypatches(monkeypatch)