Merge pull request #351 from dod-ccpo/demo-fixes

Miscellaneous fixes
This commit is contained in:
patricksmithdds 2018-09-28 10:00:36 -04:00 committed by GitHub
commit 7e84382a66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 41 additions and 70 deletions

View File

@ -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,

View File

@ -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:

View File

@ -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,
)

View File

@ -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'
}
},

View File

@ -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

View File

@ -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'
},

View File

@ -1,11 +1,11 @@
{% from "components/icon.html" import Icon %}
<p>
We will review and respond to your request in 3 business days. Youll be notified via email or phone.
The CCPO will review and respond to your request in 3 business days. Youll 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'>

View File

@ -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. Youll 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>

View File

@ -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

View File

@ -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>

View File

@ -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">

View File

@ -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)

View File

@ -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):