requests domain method for advancing a request to the next stage

This commit is contained in:
dandds 2018-09-11 11:20:27 -04:00
parent 7da1cbada3
commit 68a32e0a08
4 changed files with 31 additions and 9 deletions

View File

@ -281,8 +281,11 @@ WHERE requests_with_status.status = :status
return request
@classmethod
def accept_for_financial_verification(cls, user, request, review_data):
Requests.set_status(request, RequestStatus.PENDING_FINANCIAL_VERIFICATION)
def advance(cls, user, request, review_data):
if request.status == RequestStatus.PENDING_CCPO_ACCEPTANCE:
Requests.set_status(request, RequestStatus.PENDING_FINANCIAL_VERIFICATION)
elif request.status == RequestStatus.PENDING_CCPO_APPROVAL:
Requests.approve_and_create_workspace(request)
return Requests._add_review(user, request, review_data)

View File

@ -60,9 +60,7 @@ def submit_approval(request_id):
form = CCPOReviewForm(http_request.form)
if form.validate():
if http_request.form.get("approved"):
Requests.accept_for_financial_verification(
g.current_user, request, form.data
)
Requests.advance(g.current_user, request, form.data)
else:
Requests.request_changes(g.current_user, request, form.data)

View File

@ -181,12 +181,27 @@ def test_set_status_sets_revision():
assert request.latest_revision == request.status_events[-1].revision
def test_accept_for_financial_verification():
def test_advance_to_financial_verification():
request = RequestFactory.create()
review_data = RequestReviewFactory.dictionary()
Requests.accept_for_financial_verification(
UserFactory.create(), request, review_data
RequestStatusEventFactory.create(
request=request,
revision=request.latest_revision,
new_status=RequestStatus.PENDING_CCPO_ACCEPTANCE,
)
review_data = RequestReviewFactory.dictionary()
Requests.advance(UserFactory.create(), request, review_data)
assert request.status == RequestStatus.PENDING_FINANCIAL_VERIFICATION
current_review = request.latest_status.review
assert current_review.fname_mao == review_data["fname_mao"]
def test_advance_to_approval():
request = RequestFactory.create()
RequestStatusEventFactory.create(
request=request,
revision=request.latest_revision,
new_status=RequestStatus.PENDING_CCPO_APPROVAL,
)
review_data = RequestReviewFactory.dictionary()
Requests.advance(UserFactory.create(), request, review_data)
assert request.status == RequestStatus.APPROVED

View File

@ -10,6 +10,7 @@ from tests.factories import (
TaskOrderFactory,
UserFactory,
RequestReviewFactory,
RequestStatusEventFactory,
)
@ -71,6 +72,11 @@ def test_can_submit_request_approval(client, user_session):
user = UserFactory.from_atat_role("ccpo")
user_session(user)
request = RequestFactory.create()
RequestStatusEventFactory.create(
request=request,
revision=request.latest_revision,
new_status=RequestStatus.PENDING_CCPO_ACCEPTANCE,
)
review_data = RequestReviewFactory.dictionary()
review_data["approved"] = True
response = client.post(