From 18cd1b447366fa6c5406a67b5ccda3579d8a2ed3 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Tue, 21 Aug 2018 13:06:12 -0400 Subject: [PATCH] Approve request, create workspace after fin. verification --- atst/domain/requests.py | 10 ++++++++++ atst/routes/requests/financial_verification.py | 16 +++++++++++----- tests/routes/test_financial_verification.py | 4 ++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/atst/domain/requests.py b/atst/domain/requests.py index a1102f92..c86e2adc 100644 --- a/atst/domain/requests.py +++ b/atst/domain/requests.py @@ -6,6 +6,7 @@ from sqlalchemy.orm.attributes import flag_modified from atst.models.request import Request from atst.models.request_status_event import RequestStatusEvent, RequestStatus +from atst.domain.workspaces import Workspaces from atst.database import db from .exceptions import NotFoundError @@ -114,6 +115,15 @@ class Requests(object): db.session.add(request) 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 def set_status(cls, request: Request, status: RequestStatus): status_event = RequestStatusEvent(new_status=status) diff --git a/atst/routes/requests/financial_verification.py b/atst/routes/requests/financial_verification.py index b7fc4993..2216238f 100644 --- a/atst/routes/requests/financial_verification.py +++ b/atst/routes/requests/financial_verification.py @@ -31,17 +31,23 @@ def update_financial_verification(request_id): existing_request = Requests.get(request_id) 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(): - request_data = {"financial_verification": form.data} valid = form.perform_extra_validation( existing_request.body.get("financial_verification") ) - Requests.update(request_id, request_data) + new_workspace = Requests.update_financial_verification(request_id, post_data) 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: form.reset() return render_template( diff --git a/tests/routes/test_financial_verification.py b/tests/routes/test_financial_verification.py index 242cf575..b63a6f99 100644 --- a/tests/routes/test_financial_verification.py +++ b/tests/routes/test_financial_verification.py @@ -69,7 +69,7 @@ class TestPENumberInForm: response = self.submit_data(client, data) 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): self._set_monkeypatches(monkeypatch) @@ -81,7 +81,7 @@ class TestPENumberInForm: response = self.submit_data(client, data) 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): self._set_monkeypatches(monkeypatch)