Merge pull request #299 from dod-ccpo/details-view-tests
refactor request details rendering logic
This commit is contained in:
commit
09a18220e6
@ -204,3 +204,11 @@ class Request(Base):
|
|||||||
review = self.latest_status.review
|
review = self.latest_status.review
|
||||||
if review:
|
if review:
|
||||||
return review.comment
|
return review.comment
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_financial_data(self):
|
||||||
|
return (
|
||||||
|
self.is_pending_ccpo_approval
|
||||||
|
or self.is_pending_financial_verification_changes
|
||||||
|
or self.is_approved
|
||||||
|
) and self.task_order
|
||||||
|
@ -20,9 +20,7 @@ def map_ccpo_authorizing(user):
|
|||||||
|
|
||||||
def render_approval(request, form=None):
|
def render_approval(request, form=None):
|
||||||
data = request.body
|
data = request.body
|
||||||
pending_final_approval = request.is_pending_ccpo_approval
|
if request.has_financial_data:
|
||||||
pending_review = request.is_pending_ccpo_acceptance or pending_final_approval
|
|
||||||
if pending_final_approval and request.task_order:
|
|
||||||
data["task_order"] = request.task_order.to_dictionary()
|
data["task_order"] = request.task_order.to_dictionary()
|
||||||
|
|
||||||
if not form:
|
if not form:
|
||||||
@ -35,8 +33,6 @@ def render_approval(request, form=None):
|
|||||||
reviews=list(reversed(request.reviews)),
|
reviews=list(reversed(request.reviews)),
|
||||||
request=request,
|
request=request,
|
||||||
current_status=request.status.value,
|
current_status=request.status.value,
|
||||||
pending_review=pending_review,
|
|
||||||
financial_review=pending_final_approval,
|
|
||||||
f=form or CCPOReviewForm(),
|
f=form or CCPOReviewForm(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -128,24 +128,18 @@ def requests_submit(request_id=None):
|
|||||||
@requests_bp.route("/requests/details/<string:request_id>", methods=["GET"])
|
@requests_bp.route("/requests/details/<string:request_id>", methods=["GET"])
|
||||||
def view_request_details(request_id=None):
|
def view_request_details(request_id=None):
|
||||||
request = Requests.get(g.current_user, request_id)
|
request = Requests.get(g.current_user, request_id)
|
||||||
financial_review = (
|
|
||||||
request.is_pending_ccpo_approval
|
|
||||||
or request.is_approved
|
|
||||||
or request.is_pending_financial_verification_changes
|
|
||||||
)
|
|
||||||
requires_fv_action = (
|
requires_fv_action = (
|
||||||
request.is_pending_financial_verification
|
request.is_pending_financial_verification
|
||||||
or request.is_pending_financial_verification_changes
|
or request.is_pending_financial_verification_changes
|
||||||
)
|
)
|
||||||
|
|
||||||
data = request.body
|
data = request.body
|
||||||
if financial_review and request.task_order:
|
if request.has_financial_data:
|
||||||
data["task_order"] = request.task_order.to_dictionary()
|
data["task_order"] = request.task_order.to_dictionary()
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"requests/details.html",
|
"requests/details.html",
|
||||||
data=data,
|
data=data,
|
||||||
request=request,
|
request=request,
|
||||||
financial_review=financial_review,
|
|
||||||
requires_fv_action=requires_fv_action,
|
requires_fv_action=requires_fv_action,
|
||||||
)
|
)
|
||||||
|
@ -132,7 +132,7 @@
|
|||||||
{{ DefinitionReviewField("DoD ID", "primary_poc", "dodid_poc") }}
|
{{ DefinitionReviewField("DoD ID", "primary_poc", "dodid_poc") }}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
{% if financial_review %}
|
{% if request.has_financial_data %}
|
||||||
<hr>
|
<hr>
|
||||||
<h2>
|
<h2>
|
||||||
Financial Verification
|
Financial Verification
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{% if pending_review %}
|
{% if request.is_pending_ccpo_action %}
|
||||||
<section class='request-approval__review'>
|
<section class='request-approval__review'>
|
||||||
<form method="POST" action="{{ url_for("requests.submit_approval", request_id=request.id) }}" autocomplete="off">
|
<form method="POST" action="{{ url_for("requests.submit_approval", request_id=request.id) }}" autocomplete="off">
|
||||||
{{ f.csrf_token }}
|
{{ f.csrf_token }}
|
||||||
|
37
tests/routes/test_request_details.py
Normal file
37
tests/routes/test_request_details.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import re
|
||||||
|
from flask import url_for
|
||||||
|
|
||||||
|
from atst.models.request_status_event import RequestStatus
|
||||||
|
|
||||||
|
from tests.factories import RequestFactory, TaskOrderFactory, UserFactory
|
||||||
|
|
||||||
|
|
||||||
|
def test_can_show_financial_data(client, user_session):
|
||||||
|
user = UserFactory.create()
|
||||||
|
user_session(user)
|
||||||
|
|
||||||
|
task_order = TaskOrderFactory.create()
|
||||||
|
request = RequestFactory.create_with_status(
|
||||||
|
status=RequestStatus.PENDING_CCPO_APPROVAL, task_order=task_order, creator=user
|
||||||
|
)
|
||||||
|
response = client.get(
|
||||||
|
url_for("requests.view_request_details", request_id=request.id)
|
||||||
|
)
|
||||||
|
|
||||||
|
body = response.data.decode()
|
||||||
|
assert re.search(">\s+Financial Verification\s+<", body)
|
||||||
|
|
||||||
|
|
||||||
|
def test_can_not_show_financial_data(client, user_session):
|
||||||
|
user = UserFactory.create()
|
||||||
|
user_session(user)
|
||||||
|
|
||||||
|
request = RequestFactory.create_with_status(
|
||||||
|
status=RequestStatus.PENDING_CCPO_ACCEPTANCE, creator=user
|
||||||
|
)
|
||||||
|
response = client.get(
|
||||||
|
url_for("requests.view_request_details", request_id=request.id)
|
||||||
|
)
|
||||||
|
|
||||||
|
body = response.data.decode()
|
||||||
|
assert not re.search(">\s+Financial Verification\s+<", body)
|
Loading…
x
Reference in New Issue
Block a user