commit
7e84382a66
@ -35,7 +35,7 @@ def render_approval(request, form=None, internal_comment_form=None):
|
||||
"requests/approval.html",
|
||||
data=data,
|
||||
reviews=list(reversed(request.reviews)),
|
||||
request=request,
|
||||
jedi_request=request,
|
||||
current_status=request.status.value,
|
||||
review_form=form or CCPOReviewForm(),
|
||||
internal_comment_form=internal_comment_form,
|
||||
|
@ -71,9 +71,7 @@ def update_financial_verification(request_id):
|
||||
)
|
||||
else:
|
||||
return redirect(
|
||||
url_for(
|
||||
"requests.requests_index", modal="pendingFinancialVerification"
|
||||
)
|
||||
url_for("requests.requests_index", modal="pendingCCPOApproval")
|
||||
)
|
||||
|
||||
else:
|
||||
|
@ -121,7 +121,7 @@ def requests_submit(request_id=None):
|
||||
if request.status == RequestStatus.PENDING_FINANCIAL_VERIFICATION:
|
||||
modal = "pendingFinancialVerification"
|
||||
else:
|
||||
modal = "pendingCCPOApproval"
|
||||
modal = "pendingCCPOAcceptance"
|
||||
|
||||
return redirect(url_for("requests.requests_index", modal=modal))
|
||||
|
||||
@ -141,6 +141,6 @@ def view_request_details(request_id=None):
|
||||
return render_template(
|
||||
"requests/details.html",
|
||||
data=data,
|
||||
request=request,
|
||||
jedi_request=request,
|
||||
requires_fv_action=requires_fv_action,
|
||||
)
|
||||
|
@ -9,10 +9,14 @@ export default {
|
||||
LocalDatetime
|
||||
},
|
||||
|
||||
props: {
|
||||
initialState: String
|
||||
},
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
approving: false,
|
||||
denying: false
|
||||
approving: this.initialState === 'approving',
|
||||
denying: this.initialState === 'denying'
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -18,7 +18,10 @@ export default {
|
||||
type: String,
|
||||
default: () => ''
|
||||
},
|
||||
initialErrors: Array,
|
||||
initialErrors: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
paragraph: String,
|
||||
noMaxWidth: String
|
||||
},
|
||||
@ -30,7 +33,7 @@ export default {
|
||||
mask: inputValidations[this.validation].mask,
|
||||
pipe: inputValidations[this.validation].pipe || undefined,
|
||||
keepCharPositions: inputValidations[this.validation].keepCharPositions || false,
|
||||
validationError: inputValidations[this.validation].validationError || '',
|
||||
validationError: this.initialErrors.join(' ') || inputValidations[this.validation].validationError,
|
||||
value: this.initialValue,
|
||||
modified: false
|
||||
}
|
||||
@ -82,6 +85,10 @@ export default {
|
||||
valid = false
|
||||
}
|
||||
|
||||
if (this.modified) {
|
||||
this.validationError = inputValidations[this.validation].validationError
|
||||
}
|
||||
|
||||
// Show error messages or not
|
||||
if (valid) {
|
||||
this.showError = false
|
||||
|
@ -29,7 +29,7 @@ export default {
|
||||
},
|
||||
email: {
|
||||
mask: emailMask,
|
||||
match: /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/,
|
||||
match: /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i,
|
||||
unmask: [],
|
||||
validationError: 'Please enter a valid e-mail address'
|
||||
},
|
||||
|
@ -1,11 +1,11 @@
|
||||
{% from "components/icon.html" import Icon %}
|
||||
|
||||
<p>
|
||||
We will review and respond to your request in 3 business days. You’ll be notified via email or phone.
|
||||
The CCPO will review and respond to your request in 3 business days. You’ll be notified via email or phone. Please note if your request is for over $1M of JEDI cloud resources it will require a manual review by the CCPO.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
While your request is being reviewed, your next step is to create a Task Order associated with JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.
|
||||
While your request is being reviewed, your next step is to create a Task Order (TO) associated with the JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.
|
||||
</p>
|
||||
|
||||
<div class='alert__actions'>
|
||||
|
@ -1,40 +1,8 @@
|
||||
{% from "components/icon.html" import Icon %}
|
||||
|
||||
<h1>
|
||||
Request submitted. Approval pending.
|
||||
</h1>
|
||||
|
||||
<p>
|
||||
We will review and respond to your request in 3 business days. You’ll be notified via email or phone.
|
||||
The CCPO will review and respond to your Financial Verification submission in 3 business days. You will be notified via email or phone.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Your request is being reviewed because:
|
||||
<ul>
|
||||
<li>
|
||||
Your request includes over $1 million for cloud resources
|
||||
</li>
|
||||
<li>
|
||||
We may need more information about your request
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Next Steps
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
While your request is being reviewed, your next step is to create a Task Order associated with JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.
|
||||
Once the financial verification is approved you will be invited to create your JEDI Workspace and set-up your projects. Click here for more details.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once the Task Order has been created, you will be asked to provide details about the task order in the Financial Verification step.
|
||||
</p>
|
||||
|
||||
<div class='alert__actions'>
|
||||
<a href='/help' class='icon-link'>
|
||||
{{ Icon('help') }}
|
||||
Learn more about the JEDI Cloud Task Order and the Financial Verification process.
|
||||
</a>
|
||||
</div>
|
||||
|
@ -134,7 +134,7 @@
|
||||
{{ DefinitionReviewField("DoD ID", "primary_poc", "dodid_poc") }}
|
||||
</dl>
|
||||
|
||||
{% if request.has_financial_data %}
|
||||
{% if jedi_request.has_financial_data %}
|
||||
<hr>
|
||||
<h2>
|
||||
Financial Verification
|
||||
|
@ -17,14 +17,14 @@
|
||||
|
||||
<section class='panel'>
|
||||
<header class='panel__heading panel__heading--divider request-approval__heading'>
|
||||
<h1 class='h2'>Request: {{ request.displayname }}
|
||||
<h1 class='h2'>Request: {{ jedi_request.displayname }}
|
||||
</h1>
|
||||
<span class='label label--info'>{{ current_status }}</span>
|
||||
</header>
|
||||
|
||||
<div class='panel__content'>
|
||||
|
||||
{% with data=data, request_id=request.id %}
|
||||
{% with data=data, request_id=jedi_request.id %}
|
||||
{% include "requests/_review.html" %}
|
||||
{% endwith %}
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
</section>
|
||||
|
||||
<section class='internal-notes' id='ccpo-notes'>
|
||||
<form method="POST" action="{{ url_for('requests.create_internal_comment', request_id=request.id) }}">
|
||||
<form method="POST" action="{{ url_for('requests.create_internal_comment', request_id=jedi_request.id) }}">
|
||||
<div class='panel'>
|
||||
<div class='panel__heading panel__heading--divider'>
|
||||
<h2>CCPO Internal Comments</h2>
|
||||
@ -82,10 +82,11 @@
|
||||
|
||||
|
||||
<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=jedi_request.id) }}" autocomplete="off">
|
||||
{{ review_form.csrf_token }}
|
||||
|
||||
<ccpo-approval inline-template>
|
||||
{% set initialState = 'approving' if review_form.errors else '' %}
|
||||
<ccpo-approval inline-template initial-state="{{ initialState }}">
|
||||
<div>
|
||||
<div class='panel'>
|
||||
|
||||
@ -139,7 +140,7 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if request.is_pending_ccpo_action %}
|
||||
{% if jedi_request.is_pending_ccpo_action %}
|
||||
<div class='panel__heading request-approval__review__heading'>
|
||||
<h3 class='h3'>Review this Request</h2>
|
||||
</div>
|
||||
@ -148,7 +149,7 @@
|
||||
|
||||
<div class='usa-input'>
|
||||
<fieldset class='usa-input__choices usa-input__choices--inline'>
|
||||
<input v-on:change='setReview' type='radio' name='review' id='review-approving' value='approving'/>
|
||||
<input v-on:change='setReview' type='radio' name='review' id='review-approving' value='approving' {{ 'checked' if initialState == 'approving' }}/>
|
||||
<label for='review-approving'>Ready for approval</label>
|
||||
|
||||
<input v-on:change='setReview' type='radio' name='review' id='review-denying' value='denying'/>
|
||||
@ -226,7 +227,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
{% if request.is_pending_ccpo_action %}
|
||||
{% if jedi_request.is_pending_ccpo_action %}
|
||||
<div v-if='approving || denying' class='action-group' v-cloak>
|
||||
<button v-if='approving' type="submit" name="approved" class='usa-button usa-button-big'>Approve Request</button>
|
||||
<button v-if='denying' type="submit" name="denied" class='usa-button usa-button-big'>Request Revisions</button>
|
||||
|
@ -5,26 +5,19 @@
|
||||
{% block content %}
|
||||
<div class="col">
|
||||
|
||||
{% if request.is_pending_ccpo_acceptance %}
|
||||
{% if jedi_request.is_pending_ccpo_acceptance %}
|
||||
{{ Alert('Request submitted. Approval pending.', fragment="fragments/pending_ccpo_acceptance_alert.html") }}
|
||||
{% elif request.is_pending_ccpo_approval %}
|
||||
|
||||
{% call Alert('Pending CCPO Approval') %}
|
||||
<p>The CCPO will review and respond to your Financial Verification submission in 3 business days. You will be notified via email or phone.</p>
|
||||
<p>Once the financial verification is approved you will be invited to create your JEDI Workspace and set-up your projects. Click here for more details.</p>
|
||||
{% endcall %}
|
||||
|
||||
{% elif jedi_request.is_pending_ccpo_approval %}
|
||||
{{ Alert('Request submitted. Approval pending.', fragment="fragments/pending_ccpo_approval_modal.html") }}
|
||||
{% elif requires_fv_action %}
|
||||
|
||||
{% include 'requests/review_menu.html' %}
|
||||
{{ Alert('Pending Financial Verification', fragment="fragments/pending_financial_verification.html") }}
|
||||
|
||||
{% endif %}
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel__heading">
|
||||
<h1>Request Details</h1>
|
||||
<div class="subtitle"><h2>Request: {{ request.displayname }}</h2><span class="label label--info">{{ request.status_displayname }}</span></div>
|
||||
<div class="subtitle"><h2>Request: {{ jedi_request.displayname }}</h2><span class="label label--info">{{ jedi_request.status_displayname }}</span></div>
|
||||
</div>
|
||||
|
||||
<div class="panel__content">
|
||||
|
@ -19,7 +19,7 @@ def test_can_show_financial_data(client, user_session):
|
||||
)
|
||||
|
||||
body = response.data.decode()
|
||||
assert re.search(">\s+Financial Verification\s+<", body)
|
||||
assert re.search(r">\s+Financial Verification\s+<", body)
|
||||
|
||||
|
||||
def test_can_not_show_financial_data(client, user_session):
|
||||
@ -34,4 +34,4 @@ def test_can_not_show_financial_data(client, user_session):
|
||||
)
|
||||
|
||||
body = response.data.decode()
|
||||
assert not re.search(">\s+Financial Verification\s+<", body)
|
||||
assert not re.search(r">\s+Financial Verification\s+<", body)
|
||||
|
@ -21,7 +21,7 @@ def test_submit_reviewed_request(monkeypatch, client, user_session):
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert "/requests" in response.headers["Location"]
|
||||
assert "modal=pendingCCPOApproval" in response.headers["Location"]
|
||||
assert "modal=pendingCCPOAcceptance" in response.headers["Location"]
|
||||
|
||||
|
||||
def test_submit_autoapproved_reviewed_request(monkeypatch, client, user_session):
|
||||
|
Loading…
x
Reference in New Issue
Block a user