Merge pull request #287 from dod-ccpo/review-comment-#160185269
Review comment #160185269
This commit is contained in:
commit
ff43c3d410
@ -194,3 +194,13 @@ class Request(Base):
|
|||||||
@property
|
@property
|
||||||
def is_approved(self):
|
def is_approved(self):
|
||||||
return self.status == RequestStatus.APPROVED
|
return self.status == RequestStatus.APPROVED
|
||||||
|
|
||||||
|
@property
|
||||||
|
def review_comment(self):
|
||||||
|
if (
|
||||||
|
self.status == RequestStatus.CHANGES_REQUESTED
|
||||||
|
or self.status == RequestStatus.CHANGES_REQUESTED_TO_FINVER
|
||||||
|
):
|
||||||
|
review = self.latest_status.review
|
||||||
|
if review:
|
||||||
|
return review.comment
|
||||||
|
@ -39,6 +39,7 @@ def financial_verification(request_id=None):
|
|||||||
"requests/financial_verification.html",
|
"requests/financial_verification.html",
|
||||||
f=form,
|
f=form,
|
||||||
request=request,
|
request=request,
|
||||||
|
review_comment=request.review_comment,
|
||||||
extended=is_extended(request),
|
extended=is_extended(request),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ def requests_form_update(screen=1, request_id=None):
|
|||||||
next_screen=screen + 1,
|
next_screen=screen + 1,
|
||||||
request_id=request_id,
|
request_id=request_id,
|
||||||
jedi_request=jedi_flow.request,
|
jedi_request=jedi_flow.request,
|
||||||
|
review_comment=request.review_comment,
|
||||||
can_submit=jedi_flow.can_submit,
|
can_submit=jedi_flow.can_submit,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
{% include 'requests/menu.html' %}
|
{% include 'requests/menu.html' %}
|
||||||
|
|
||||||
|
{% if review_comment %}
|
||||||
|
{% include 'requests/comment.html' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% block form_action %}
|
{% block form_action %}
|
||||||
{% if request_id %}
|
{% if request_id %}
|
||||||
<form method='POST' action="{{ url_for('requests.requests_form_update', screen=current, request_id=request_id) }}" autocomplete="off">
|
<form method='POST' action="{{ url_for('requests.requests_form_update', screen=current, request_id=request_id) }}" autocomplete="off">
|
||||||
|
9
templates/requests/comment.html
Normal file
9
templates/requests/comment.html
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{% from "components/alert.html" import Alert %}
|
||||||
|
|
||||||
|
{% call Alert('Changes Requested', level='warning') %}
|
||||||
|
<p>CCPO has requested changes to your submission with the following notes:
|
||||||
|
<br>
|
||||||
|
{{ review_comment }}
|
||||||
|
<br>
|
||||||
|
Please contact info@jedi.cloud or 123-123-4567 for further discussion.</p>
|
||||||
|
{% endcall %}
|
@ -12,6 +12,10 @@
|
|||||||
{{ Alert('Pending Financial Verification', fragment="fragments/pending_financial_verification.html") }}
|
{{ Alert('Pending Financial Verification', fragment="fragments/pending_financial_verification.html") }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if review_comment %}
|
||||||
|
{% include 'requests/comment.html' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<financial inline-template v-bind:initial-data='{{ f.data|mixedContentToJson }}'>
|
<financial inline-template v-bind:initial-data='{{ f.data|mixedContentToJson }}'>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
|
||||||
|
@ -92,3 +92,26 @@ def test_reviews():
|
|||||||
RequestStatusEventFactory.create(revision=request.latest_revision),
|
RequestStatusEventFactory.create(revision=request.latest_revision),
|
||||||
]
|
]
|
||||||
assert len(request.reviews) == 2
|
assert len(request.reviews) == 2
|
||||||
|
|
||||||
|
|
||||||
|
def test_review_comment():
|
||||||
|
request = RequestFactory.create()
|
||||||
|
ccpo = UserFactory.from_atat_role("ccpo")
|
||||||
|
request.status_events = [
|
||||||
|
RequestStatusEventFactory.create(
|
||||||
|
revision=request.latest_revision,
|
||||||
|
new_status=RequestStatus.CHANGES_REQUESTED,
|
||||||
|
review=RequestReviewFactory.create(reviewer=ccpo, comment="do better"),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
assert request.review_comment == "do better"
|
||||||
|
|
||||||
|
request.status_events = [
|
||||||
|
RequestStatusEventFactory.create(
|
||||||
|
revision=request.latest_revision,
|
||||||
|
new_status=RequestStatus.APPROVED,
|
||||||
|
review=RequestReviewFactory.create(reviewer=ccpo, comment="much better"),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
assert not request.review_comment
|
||||||
|
@ -3,9 +3,16 @@ import pytest
|
|||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
|
||||||
from atst.eda_client import MockEDAClient
|
from atst.eda_client import MockEDAClient
|
||||||
|
from atst.models.request_status_event import RequestStatus
|
||||||
|
|
||||||
from tests.mocks import MOCK_REQUEST, MOCK_USER
|
from tests.mocks import MOCK_REQUEST, MOCK_USER
|
||||||
from tests.factories import PENumberFactory, RequestFactory, UserFactory
|
from tests.factories import (
|
||||||
|
PENumberFactory,
|
||||||
|
RequestFactory,
|
||||||
|
UserFactory,
|
||||||
|
RequestStatusEventFactory,
|
||||||
|
RequestReviewFactory,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestPENumberInForm:
|
class TestPENumberInForm:
|
||||||
@ -148,3 +155,21 @@ class TestPENumberInForm:
|
|||||||
response = self.submit_data(client, user, data, extended=True)
|
response = self.submit_data(client, user, data, extended=True)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|
||||||
|
|
||||||
|
def test_displays_ccpo_review_comment(user_session, client):
|
||||||
|
creator = UserFactory.create()
|
||||||
|
ccpo = UserFactory.from_atat_role("ccpo")
|
||||||
|
user_session(creator)
|
||||||
|
request = RequestFactory.create(creator=creator)
|
||||||
|
review_comment = "add all of the correct info, instead of the incorrect info"
|
||||||
|
request.status_events = [
|
||||||
|
RequestStatusEventFactory.create(
|
||||||
|
revision=request.latest_revision,
|
||||||
|
new_status=RequestStatus.CHANGES_REQUESTED_TO_FINVER,
|
||||||
|
review=RequestReviewFactory.create(reviewer=ccpo, comment=review_comment),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
response = client.get("/requests/verify/{}".format(request.id))
|
||||||
|
body = response.data.decode()
|
||||||
|
assert review_comment in body
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
import re
|
import re
|
||||||
from tests.factories import RequestFactory, UserFactory, RequestRevisionFactory
|
from tests.factories import (
|
||||||
|
RequestFactory,
|
||||||
|
UserFactory,
|
||||||
|
RequestRevisionFactory,
|
||||||
|
RequestStatusEventFactory,
|
||||||
|
RequestReviewFactory,
|
||||||
|
)
|
||||||
|
from atst.models.request_status_event import RequestStatus
|
||||||
from atst.domain.roles import Roles
|
from atst.domain.roles import Roles
|
||||||
from atst.domain.requests import Requests
|
from atst.domain.requests import Requests
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
@ -213,3 +220,21 @@ def test_can_review_data(user_session, client):
|
|||||||
# assert a sampling of the request data is on the review page
|
# assert a sampling of the request data is on the review page
|
||||||
assert request.body["primary_poc"]["fname_poc"] in body
|
assert request.body["primary_poc"]["fname_poc"] in body
|
||||||
assert request.body["information_about_you"]["email_request"] in body
|
assert request.body["information_about_you"]["email_request"] in body
|
||||||
|
|
||||||
|
|
||||||
|
def test_displays_ccpo_review_comment(user_session, client):
|
||||||
|
creator = UserFactory.create()
|
||||||
|
ccpo = UserFactory.from_atat_role("ccpo")
|
||||||
|
user_session(creator)
|
||||||
|
request = RequestFactory.create(creator=creator)
|
||||||
|
review_comment = "add all of the correct info, instead of the incorrect info"
|
||||||
|
request.status_events = [
|
||||||
|
RequestStatusEventFactory.create(
|
||||||
|
revision=request.latest_revision,
|
||||||
|
new_status=RequestStatus.CHANGES_REQUESTED,
|
||||||
|
review=RequestReviewFactory.create(reviewer=ccpo, comment=review_comment),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
response = client.get("/requests/new/1/{}".format(request.id))
|
||||||
|
body = response.data.decode()
|
||||||
|
assert review_comment in body
|
||||||
|
Loading…
x
Reference in New Issue
Block a user