requests domain method for advancing a request to the next stage
This commit is contained in:
@@ -281,8 +281,11 @@ WHERE requests_with_status.status = :status
|
|||||||
return request
|
return request
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def accept_for_financial_verification(cls, user, request, review_data):
|
def advance(cls, user, request, review_data):
|
||||||
Requests.set_status(request, RequestStatus.PENDING_FINANCIAL_VERIFICATION)
|
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)
|
return Requests._add_review(user, request, review_data)
|
||||||
|
|
||||||
|
@@ -60,9 +60,7 @@ def submit_approval(request_id):
|
|||||||
form = CCPOReviewForm(http_request.form)
|
form = CCPOReviewForm(http_request.form)
|
||||||
if form.validate():
|
if form.validate():
|
||||||
if http_request.form.get("approved"):
|
if http_request.form.get("approved"):
|
||||||
Requests.accept_for_financial_verification(
|
Requests.advance(g.current_user, request, form.data)
|
||||||
g.current_user, request, form.data
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
Requests.request_changes(g.current_user, request, form.data)
|
Requests.request_changes(g.current_user, request, form.data)
|
||||||
|
|
||||||
|
@@ -181,12 +181,27 @@ def test_set_status_sets_revision():
|
|||||||
assert request.latest_revision == request.status_events[-1].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()
|
request = RequestFactory.create()
|
||||||
review_data = RequestReviewFactory.dictionary()
|
RequestStatusEventFactory.create(
|
||||||
Requests.accept_for_financial_verification(
|
request=request,
|
||||||
UserFactory.create(), request, review_data
|
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
|
assert request.status == RequestStatus.PENDING_FINANCIAL_VERIFICATION
|
||||||
current_review = request.latest_status.review
|
current_review = request.latest_status.review
|
||||||
assert current_review.fname_mao == review_data["fname_mao"]
|
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
|
||||||
|
@@ -10,6 +10,7 @@ from tests.factories import (
|
|||||||
TaskOrderFactory,
|
TaskOrderFactory,
|
||||||
UserFactory,
|
UserFactory,
|
||||||
RequestReviewFactory,
|
RequestReviewFactory,
|
||||||
|
RequestStatusEventFactory,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -71,6 +72,11 @@ def test_can_submit_request_approval(client, user_session):
|
|||||||
user = UserFactory.from_atat_role("ccpo")
|
user = UserFactory.from_atat_role("ccpo")
|
||||||
user_session(user)
|
user_session(user)
|
||||||
request = RequestFactory.create()
|
request = RequestFactory.create()
|
||||||
|
RequestStatusEventFactory.create(
|
||||||
|
request=request,
|
||||||
|
revision=request.latest_revision,
|
||||||
|
new_status=RequestStatus.PENDING_CCPO_ACCEPTANCE,
|
||||||
|
)
|
||||||
review_data = RequestReviewFactory.dictionary()
|
review_data = RequestReviewFactory.dictionary()
|
||||||
review_data["approved"] = True
|
review_data["approved"] = True
|
||||||
response = client.post(
|
response = client.post(
|
||||||
|
Reference in New Issue
Block a user