Remove request-related templates

This commit is contained in:
Patrick Smith 2019-02-22 11:35:58 -05:00
parent 019e7f24c8
commit 95f2126881
14 changed files with 0 additions and 1319 deletions

View File

@ -1,49 +0,0 @@
{% extends "base.html" %}
{% block content %}
<div class="col">
{% include 'requests/menu.html' %}
{% include "fragments/flash.html" %}
{% block form_action %}
{% if request_id %}
<form method='POST' action="{{ url_for('requests.requests_form_update', screen=current, request_id=request_id) }}" autocomplete="off">
{% else %}
<form method='POST' action="{{ url_for('requests.requests_form_update', screen=current) }}" autocomplete="off">
{% endif %}
{% endblock %}
<div class="panel">
<div class="panel__heading">
<h1>{% block heading %}{% endblock %}</h1>
<div class="subtitle h2">{{ "requests._new.new_request" | translate }}</div>
</div>
<div class="panel__content">
{{ f.csrf_token }}
{% block form %}
form goes here
{% endblock %}
</div>
</div>
{% block next %}
<div class='action-group'>
<input type='submit' class='usa-button usa-button-primary' value='{{ "common.save_and_continue" | translate }}' />
</div>
{% endblock %}
</form>
</div>
{% endblock %}

View File

@ -1,215 +0,0 @@
{% macro RequiredLabel() -%}
<span class='label label--error'>Response Required</span>
{%- endmacro %}
{% macro DefinitionReviewField(title, section, item_name, filter=None, filter_args=[]) -%}
<div>
<dt>{{ title | safe }}</dt>
<dd>
{% set value = data.get(section, {}).get(item_name) %}
{% if value is not none %}
{{ value | findFilter(filter, filter_args) }}
{% else %}
{{ RequiredLabel() }}
{% endif %}
</dd>
</div>
{% endmacro %}
{% macro EditLink(screen) %}
{% if request_id %}
{{ url_for('requests.requests_form_update', screen=screen, request_id=request_id)}}
{% else %}
{{ url_for('requests.requests_form_update', screen=screen, request_id=None) }}
{% endif %}
{% endmacro %}
<h2>
Details of Use
{% if editable %}
<a href="{{ EditLink(1) }}" class="icon-link">
{{ Icon('edit') }}
<span>Edit this section</span>
</a>
{% endif %}
</h2>
<dl>
{{ DefinitionReviewField("DoD Component", "details_of_use", "dod_component", filter="getOptionLabel", filter_args=[service_branches]) }}
{{ DefinitionReviewField("JEDI Cloud Usage", "details_of_use", "jedi_usage") }}
{{ DefinitionReviewField("Number of software systems", "details_of_use", "num_software_systems", filter="readableInteger") }}
{{ DefinitionReviewField("JEDI Cloud Migration", "details_of_use", "jedi_migration") }}
{% if data['details_of_use']['jedi_migration'] == 'yes' %}
{{ DefinitionReviewField("Rationalization of Software Systems", "details_of_use", "rationalization_software_systems") }}
{{ DefinitionReviewField("Technical Support Team", "details_of_use", "technical_support_team") }}
{% if data['details_of_use']['technical_support_team'] == 'yes' %}
{{ DefinitionReviewField("Organization Providing Assistance", "details_of_use", "organization_providing_assistance", filter="getOptionLabel", filter_args=[assistance_org_types]) }}
{% endif %}
{{ DefinitionReviewField("Engineering Assessment", "details_of_use", "engineering_assessment") }}
{{ DefinitionReviewField("Data Transfers", "details_of_use", "data_transfers", filter="getOptionLabel", filter_args=[data_transfer_amounts]) }}
{{ DefinitionReviewField("Expected Completion Date", "details_of_use", "expected_completion_date", filter="getOptionLabel", filter_args=[completion_date_ranges]) }}
{% else %}
{{ DefinitionReviewField("Cloud Native", "details_of_use", "cloud_native") }}
{% endif %}
{{ DefinitionReviewField("Estimated Monthly Spend", "details_of_use", "estimated_monthly_spend", filter="dollars") }}
{% if jedi_request and jedi_request.annual_spend > annual_spend_threshold %}
{{ DefinitionReviewField("Number of User Sessions", "details_of_use", "number_user_sessions", filter="readableInteger") }}
{{ DefinitionReviewField("Average Daily Traffic (Number of Requests)", "details_of_use", "average_daily_traffic", filter="readableInteger") }}
{{ DefinitionReviewField("Average Daily Traffic (GB)", "details_of_use", "average_daily_traffic_gb", filter="readableInteger") }}
{% endif %}
{{ DefinitionReviewField("Total Spend", "details_of_use", "dollar_value", filter="dollars") }}
{{ DefinitionReviewField("Start Date", "details_of_use", "start_date") }}
{{ DefinitionReviewField("Request Name", "details_of_use", "name") }}
</dl>
<hr>
<h2>
Information About You
{% if editable %}
<a href="{{ EditLink(2) }}" class="icon-link">
{{ Icon('edit') }}
<span>Edit this section</span>
</a>
{% endif %}
</h2>
<dl>
{{ DefinitionReviewField("First Name", "information_about_you", "fname_request") }}
{{ DefinitionReviewField("Last Name", "information_about_you", "lname_request") }}
{{ DefinitionReviewField("Email Address", "information_about_you", "email_request") }}
<div>
<dt>Phone Number</dt>
<dd>
{% if data.information_about_you.phone_number is not none %}
{{ data.information_about_you.phone_number }}
{% else %}
{{ RequiredLabel() }}
{% endif %}
{% if data.information_about_you.phone_ext %}
ext. {{ data.information_about_you.phone_ext }}
{% endif %}
</dd>
</div>
{{ DefinitionReviewField("Service Branch or Agency", "information_about_you", "service_branch", filter="getOptionLabel", filter_args=[service_branches]) }}
{{ DefinitionReviewField("Citizenship", "information_about_you", "citizenship") }}
{{ DefinitionReviewField("Designation of Person", "information_about_you", "designation", filter="capitalize") }}
{{ DefinitionReviewField("Latest Information Assurance (IA) Training completion date", "information_about_you", "date_latest_training") }}
</dl>
<hr>
<h2>
Portfolio Owner
{% if editable %}
<a href="{{ EditLink(3) }}" class="icon-link">
{{ Icon('edit') }}
<span>Edit this section</span>
</a>
{% endif %}
</h2>
<dl>
{{ DefinitionReviewField("POC First Name", "primary_poc", "fname_poc") }}
{{ DefinitionReviewField("POC Last Name", "primary_poc", "lname_poc") }}
{{ DefinitionReviewField("POC Email Address", "primary_poc", "email_poc") }}
{{ DefinitionReviewField("DoD ID", "primary_poc", "dodid_poc") }}
</dl>
{% if jedi_request.has_financial_data %}
<hr>
<h2>
Financial Verification
</h2>
<div>
{% if jedi_request.legacy_task_order.pdf %}
<a href="{{ url_for("requests.task_order_pdf_download", request_id=request_id)}}" download>
Download the Task Order PDF
</a>
{% else %}
<p>No Task Order PDF attached.</p>
{% endif %}
</div>
<dl>
{{ DefinitionReviewField("Task Order Information Source", "legacy_task_order", "source", filter="getOptionLabel", filter_args=[task_order_sources]) }}
{{ DefinitionReviewField("Task Order Number", "legacy_task_order", "number") }}
{{ DefinitionReviewField("What is the source of funding?", "legacy_task_order", "funding_type", filter="getOptionLabel", filter_args=[funding_types]) }}
{% if data["legacy_task_order"] and data["legacy_task_order"]["funding_type"].value == "OTHER" %}
{{ DefinitionReviewField("If other, please specify", "legacy_task_order", "funding_type_other") }}
{% endif %}
{{ DefinitionReviewField("Task Order Expiration Date", "legacy_task_order", "expiration_date") }}
{{ DefinitionReviewField("<dl><dt>CLIN 0001</dt> - <dd>Unclassified IaaS and PaaS Amount</dd></dl>", "legacy_task_order", "clin_0001", filter="dollars") }}
{{ DefinitionReviewField("<dl><dt>CLIN 0003</dt> - <dd>Unclassified Cloud Support Package</dd></dl>", "legacy_task_order", "clin_0003", filter="dollars") }}
{{ DefinitionReviewField("<dl><dt>CLIN 1001</dt> - <dd>Unclassified IaaS and PaaS Amount <br> OPTION PERIOD 1</dd></dl>", "legacy_task_order", "clin_1001", filter="dollars") }}
{{ DefinitionReviewField("<dl><dt>CLIN 1003</dt> - <dd>Unclassified Cloud Support Package <br> OPTION PERIOD 1</dd></dl>", "legacy_task_order", "clin_1003", filter="dollars") }}
{{ DefinitionReviewField("<dl><dt>CLIN 2001</dt> - <dd>Unclassified IaaS and PaaS Amount <br> OPTION PERIOD 2</dd></dl>", "legacy_task_order", "clin_2001", filter="dollars") }}
{{ DefinitionReviewField("<dl><dt>CLIN 2003</dt> - <dd>Unclassified Cloud Support Package <br> OPTION PERIOD 2</dd></dl>", "legacy_task_order", "clin_2003", filter="dollars") }}
{{ DefinitionReviewField("Unique Item Identifier (UII)s related to your application(s) if you already have them", "financial_verification", "uii_ids", filter="renderList") }}
{{ DefinitionReviewField("Program Element (PE) Number related to your request", "financial_verification", "pe_id") }}
{{ DefinitionReviewField("Program Treasury Code", "financial_verification", "treasury_code") }}
{{ DefinitionReviewField("Program Budget Activity (BA) Code", "financial_verification", "ba_code") }}
{{ DefinitionReviewField("Contracting Officer First Name", "financial_verification", "fname_co") }}
{{ DefinitionReviewField("Contracting Officer Last Name", "financial_verification", "lname_co") }}
{{ DefinitionReviewField("Contracting Officer Email", "financial_verification", "email_co") }}
{{ DefinitionReviewField("Contracting Officer Office", "financial_verification", "office_co") }}
{{ DefinitionReviewField("Contracting Officer Representative (COR) First Name", "financial_verification", "fname_cor") }}
{{ DefinitionReviewField("Contracting Officer Representative (COR) Last Name", "financial_verification", "lname_cor") }}
{{ DefinitionReviewField("Contracting Officer Representative (COR) Email", "financial_verification", "email_cor") }}
{{ DefinitionReviewField("Contracting Officer Representative (COR) Office", "financial_verification", "office_cor") }}
</dl>
{% endif %}

View File

@ -1,271 +0,0 @@
{% extends "base.html" %}
{% from "components/icon.html" import Icon %}
{% from "components/text_input.html" import TextInput %}
{% from "components/phone_input.html" import PhoneInput %}
{% block content %}
<article class='col col--grow request-approval'>
{% include "fragments/flash.html" %}
<section class='panel'>
<header class='panel__heading panel__heading--divider request-approval__heading'>
<h1 class='h2'>
{{ "requests.approval.request_title" | translate({ "displayname": jedi_request.displayname }) }}
</h1>
<span class='label label--info'>{{ current_status }}</span>
</header>
<div class='panel__content'>
{% with data=data, request_id=jedi_request.id %}
{% include "requests/_review.html" %}
{% endwith %}
</div>
</section>
<section class='internal-notes' id='ccpo-notes'>
<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>{{ "requests.approval.ccpo_internal_comments" | translate }}</h2>
</div>
<div class='comment-log'>
{% if comments %}
<ol>
{% for comment in comments %}
<li>
<article class='comment-log__log-item'>
<div>
<h3 class='comment-log__log-item__header'>{{ comment.user.full_name }}</h3>
<p>{{ comment.text }}</p>
</div>
{% set timestamp=comment.time_created | formattedDate("%Y-%m-%d %H:%M:%S %Z") %}
<footer class='comment-log__log-item__timestamp'>
<local-datetime timestamp='{{ timestamp }}'></local-datetime>
</footer>
</article>
</li>
{% endfor %}
</ol>
{% else %}
<div class='panel__content'>
<p class='h4'>
{{ "requests.approval.no_ccpo_comments" | translate }}
</p>
</div>
{% endif %}
</div>
<div class='panel__heading internal-notes__add-comment__heading'>
<h3 class='h3'>
{{ "requests.approval.add_comment" | translate }}
</h3>
</div>
<div class='panel__content'>
{{ internal_comment_form.csrf_token }}
{{ TextInput(internal_comment_form.text, paragraph=True, noMaxWidth=True) }}
</div>
</div>
<div class='action-group action-group--tight'>
<button class='usa-button' type="submit">
{{ "requests.approval.save_notes" | translate }}
</button>
</div>
</form>
</section>
<section class='request-approval__review'>
<form method="POST" action="{{ url_for("requests.submit_approval", request_id=jedi_request.id) }}" autocomplete="off">
{{ review_form.csrf_token }}
{% set initialState = 'approving' if review_form.errors else '' %}
<ccpo-approval inline-template initial-state="{{ initialState }}">
<div>
<div class='panel'>
<header class='panel__heading panel__heading--divider'>
<h2 class='request-approval__columns__heading'>
{{ "requests.approval.ccpo_review_activity" | translate }}
</h2>
</header>
<div class='approval-log'>
{% if reviews %}
<ol>
{% for review in reviews %}
<li>
<article class='approval-log__log-item'>
<div>
<h3 class='approval-log__log-item__header'>{{ review.status.log_name }} by {{ review.full_name_reviewer }}</h3>
{% if review.comment %}
<p>{{ review.comment }}</p>
{% endif %}
<div class='approval-log__behalfs'>
{% if review.lname_mao %}
<div class='approval-log__behalf'>
<h3 class='approval-log__log-item__header'>
{{ "requests.approval.mission_owner_approval_on_behalf_of" | translate }}
</h3>
<span>{{ review.full_name_mao }}</span>
<span>{{ review.email_mao }}</span>
<span>
{{ review.phone_mao }}
{% if review.phone_ext_mao %}
ext. {{ review.phone_ext_mao }}
{% endif %}
</span>
</div>
{% endif %}
{% if review.lname_ccpo %}
<div class='approval-log__behalf'>
<h3 class='approval-log__log-item__header'>
{{ "requests.approval.ccpo_approval_on_behalf_of" | translate }}
</h3>
<span>{{ review.full_name_ccpo }}</span>
</div>
{% endif %}
</div>
</div>
{% set timestamp=review.status.time_created | formattedDate("%Y-%m-%d %H:%M:%S %Z") %}
<footer class='approval-log__log-item__timestamp'>
<local-datetime timestamp='{{ timestamp }}'></local-datetime>
</footer>
</article>
</li>
{% endfor %}
</ol>
{% else %}
<div class='panel__content'>
<p class='h4'>
{{ "requests.approval.no_ccpo_approval_request_changes" | translate }}
</p>
</div>
{% endif %}
</div>
{% if jedi_request.is_pending_ccpo_action %}
<div class='panel__heading request-approval__review__heading'>
<h3 class='h3'>
{{ "requests.approval.review_request" | translate }}
</h3>
</div>
<div class='panel__content'>
<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' {{ 'checked' if initialState == 'approving' }}/>
<label for='review-approving'>
{{ "requests.approval.ready_for_approval" | translate }}
</label>
<input v-on:change='setReview' type='radio' name='review' id='review-denying' value='denying'/>
<label for='review-denying'>
{{ "requests.approval.request_revisions" | translate }}
</label>
</fieldset>
</div>
<div v-if='approving || denying' class='form__sub-fields' v-cloak>
<h3>Message to Requestor <span class='subtitle'>(optional)</span></h3>
<div v-if='approving' key='approving' v-cloak>
{{ TextInput(
review_form.comment,
label=("requests.approval.approve_comments_or_notes_label" | translate),
description=("requests.approval.approve_comments_or_notes_description" | translate),
paragraph=True,
noMaxWidth=True
) }}
</div>
<div v-else key='denying' v-cloak>
{{ TextInput(
review_form.comment,
label=("requests.approval.revision_instructions_or_notes_label" | translate),
paragraph=True,
noMaxWidth=True
) }}
</div>
</div>
<div v-if='approving' class='form__sub-fields' v-cloak>
<h3>
{{ "requests.approval.authorizing_officials_title" | translate }}
<span class='subtitle'>(optional)</span>
</h3>
<p>
{{ "requests.approval.authorizing_officials_paragraph" | translate }}
</p>
<hr />
<h4>
{{ "requests.approval.mission_authorizing_official_title" | translate }}
</h4>
<div class='form-row'>
<div class='form-col form-col--half'>
{{ TextInput(review_form.fname_mao, placeholder="First name of mission authorizing official") }}
</div>
<div class='form-col form-col--half'>
{{ TextInput(review_form.lname_mao, placeholder="Last name of mission authorizing official") }}
</div>
</div>
{{ TextInput(review_form.email_mao, placeholder="name@mail.mil", validation='email') }}
{{ PhoneInput(review_form.phone_mao, review_form.phone_ext_mao) }}
<hr />
<h4>
{{ "requests.approval.ccpo_authorizing_official_title" | translate }}
</h4>
<div class='form-row'>
<div class='form-col form-col--half'>
{{ TextInput(review_form.fname_ccpo, placeholder="First name of CCPO authorizing official") }}
</div>
<div class='form-col form-col--half'>
{{ TextInput(review_form.lname_ccpo, placeholder="Last name of CCPO authorizing official") }}
</div>
</div>
</div>
</div>
{% endif %}
</div>
{% 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>
<a href='{{ url_for("requests.requests_index") }}' class='icon-link'>
{{ Icon('x') }}
<span>Cancel</span>
</a>
</div>
{% endif %}
</div>
</ccpo-approval>
</form>
</section>
</article>
{% endblock %}

View File

@ -1,30 +0,0 @@
{% extends "base.html" %}
{% from "components/alert.html" import Alert %}
{% block content %}
<div class="col">
{% if jedi_request.is_pending_ccpo_acceptance %}
{{ Alert('Request submitted. Approval pending.', fragment="fragments/pending_ccpo_acceptance_alert.html") }}
{% 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: {{ jedi_request.displayname }}</h2><span class="label label--info">{{ jedi_request.status_displayname }}</span></div>
</div>
<div class="panel__content">
{% include "requests/_review.html" %}
</div>
</div>
</div>
{% endblock %}

View File

@ -1,220 +0,0 @@
{% extends "base.html" %}
{% from "components/alert.html" import Alert %}
{% from "components/text_input.html" import TextInput %}
{% from "components/options_input.html" import OptionsInput %}
{% from "components/date_input.html" import DateInput %}
{% block content %}
{% include 'requests/review_menu.html' %}
{% include "fragments/flash.html" %}
{% if saved_draft %}
{% call Alert(("requests.financial_verification.draft_saved" | translate), level='success') %}
{% endcall %}
{% endif %}
{% if jedi_request.is_pending_financial_verification and not f.errors and not extended %}
{{ Alert(("requests.financial_verification.pending_financial_verification" | translate), fragment="fragments/pending_financial_verification.html") }}
{% endif %}
<financial inline-template v-bind:initial-data='{{ f.data|tojson }}'>
<div class="col">
{% if extended %}
{{ Alert(("requests.financial_verification.manually_enter_task_information_label" | translate),
message=("requests.financial_verification.manually_enter_task_information_description" | translate),
level='warning',
actions=[
{
'href': url_for('atst.helpdocs'),
'label': ("requests.financial_verification.manually_enter_task_information_help_label" | translate),
'icon': 'help'
}
]
) }}
{% endif %}
{% if f.is_missing_task_order_number %}
{% set extended_url = url_for('requests.financial_verification', request_id=jedi_request.id, extended=True) %}
{% call Alert(("requests.financial_verification.task_order_not_found_eda_label"), level='warning') %}
{{ "requsts.financial_verification.task_order_not_found_eda_description" | translate }}
<br>
<a class="usa-button" href="{{ extended_url }}">
{{ "requests.financial_verification.enter_task_order_manually_link_text" | translate }}
</a>
{% endcall %}
{% endif %}
<form autocomplete="off" enctype="multipart/form-data">
{{ f.csrf_token }}
{% block form %}
{% autoescape false %}
{% if f.errors and not f.is_only_missing_task_order_number %}
{{ Alert(("requests.financial_verification.some_errors_label" | translate),
message="<p>Please see below.</p>",
level='error'
) }}
{% endif %}
<div class="panel">
<div class="panel__heading">
<h1>{{ "requests.financial_verification.financial_verification_title" | translate }}</h1>
<div class="subtitle" id="financial-verification">
<h2>
{{ "requests.financial_verification.request_title" | translate({ "displayname" : jedi_request.displayname }) }}
</h2>
</div>
</div>
<div class="panel__content">
<p>
{{ "requests.financial_verification.permissions_paragraph" | translate }}
</p>
{% if extended %}
<fieldset class="form__sub-fields form__sub-fields--warning">
{{ OptionsInput(f.legacy_task_order.funding_type) }}
<template v-if="funding_type == 'OTHER'" v-cloak>
{{ TextInput(f.legacy_task_order.funding_type_other) }}
</template>
{{
DateInput(
f.legacy_task_order.expiration_date,
placeholder='MM / DD / YYYY',
validation='date',
tooltip=("requests.financial_verification.expiration_date_placeholder" | translate)
)
}}
{{ TextInput(
f.legacy_task_order.clin_0001,
validation='dollars'
) }}
{{ TextInput(
f.legacy_task_order.clin_0003,
validation='dollars'
) }}
{{ TextInput(
f.legacy_task_order.clin_1001,
validation='dollars'
) }}
{{ TextInput(
f.legacy_task_order.clin_1003,
validation='dollars'
) }}
{{ TextInput(
f.legacy_task_order.clin_2001,
validation='dollars'
) }}
{{ TextInput(
f.legacy_task_order.clin_2003,
validation='dollars'
) }}
<template v-if="showTaskOrderUpload">
<div class="usa-input {% if f.legacy_task_order.pdf.errors %} usa-input--error {% endif %}">
{{ f.legacy_task_order.pdf.label }}
{{ f.legacy_task_order.pdf }}
{% for error in f.legacy_task_order.pdf.errors %}
<span class="usa-input__message">{{error}}</span>
{% endfor %}
</div>
</template>
<template v-else>
<p>Uploaded {{ f.legacy_task_order.pdf.data }}.</p>
<div>
<button v-on:click="forceShowTaskOrderUpload($event)">Change</button>
</div>
</template>
</fieldset>
{% endif %}
{{ TextInput(
f.legacy_task_order.number,
placeholder="e.g.: 1234567899C0001",
tooltip=("requests.financial_verification.number_placeholder" | translate),
validation="requiredField"
) }}
{{ TextInput(f.request.uii_ids,
paragraph=True,
placeholder="examples: \nDI 0CVA5786950 \nUN1945326361234786950",
tooltip=("requests.financial_verification.uui_ids_placeholder" | translate)
) }}
{{ TextInput(f.request.pe_id,
placeholder="e.g.: 0105688F",
validation="peNumber"
) }}
{{ TextInput(f.request.treasury_code,placeholder="e.g.: 00123456",validation="treasuryCode") }}
{{ TextInput(f.request.ba_code,placeholder="e.g.: 02A",validation="baCode") }}
<hr />
<h3>
{{ "requests.financial_verification.contracting_officer_information_title" | translate }}
</h3>
<div class='form-row'>
<div class='form-col form-col--half '>{{ TextInput(f.request.fname_co, validation="requiredField") }}</div>
<div class='form-col form-col--half '>{{ TextInput(f.request.lname_co, validation="requiredField") }}</div>
</div>
<div class='form-row'>
<div class='form-col form-col--half'>{{ TextInput(f.request.email_co,validation='email', placeholder='e.g. jane@mail.mil') }}</div>
<div class='form-col form-col--half'>{{ TextInput(f.request.office_co, validation="requiredField", placeholder="e.g.: WHS") }}</div>
</div>
<hr />
<h3>
{{ "requests.financial_verification.contracting_officer_representative_information_title" | translate }}
</h3>
<div class='form-row'>
<div class='form-col form-col--half '>{{ TextInput(f.request.fname_cor, validation="requiredField") }}</div>
<div class='form-col form-col--half '>{{ TextInput(f.request.lname_cor, validation="requiredField") }}</div>
</div>
<div class='form-row'>
<div class='form-col form-col--half'>{{ TextInput(f.request.email_cor,validation='email', placeholder='e.g. jane@mail.mil') }}</div>
<div class='form-col form-col--half'>{{ TextInput(f.request.office_cor, validation="requiredField", placeholder="e.g.: WHS") }}</div>
</div>
{% endautoescape %}
</div>
</div>
{% endblock form %}
{% block next %}
<div class='action-group'>
<input formmethod="post" formaction="{{ url_for('requests.financial_verification', request_id=jedi_request.id, extended=extended) }}" type='submit' class='usa-button usa-button-primary' value='Save & Continue' />
<input formmethod="post" formaction="{{ url_for('requests.save_financial_verification_draft', request_id=jedi_request.id, extended=extended) }}" type='submit' class='usa-button usa-button-primary' value='Save Draft' />
{% if jedi_request.last_finver_draft_saved_at %}
<em>Draft saved at <localdatetime :timestamp="'{{ jedi_request.last_finver_draft_saved_at.isoformat() }}'"></localdatetime></em>
{% endif %}
</div>
{% endblock %}
</form>
</div>
</financial>
{% endblock %}

View File

@ -1,18 +0,0 @@
{% extends "base.html" %}
{% block content %}
<div class="col">
<div class="panel">
<div class="panel__content">
<div class="panel__heading">
<h2 id="financial-verification">Submitted</h2>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,178 +0,0 @@
{% extends "base.html" %}
{% from "components/modal.html" import Modal %}
{% from "components/empty_state.html" import EmptyState %}
{% from "components/icon.html" import Icon %}
{% block content %}
{% call Modal(name='pendingFinancialVerification', dismissable=True) %}
<h1>{{ "requests.index.request_submitted_title" | translate }}</h1>
{% include 'fragments/pending_financial_verification.html' %}
<div class='action-group'>
<button autofocus type=button v-on:click="closeModal('pendingFinancialVerification')" class='action-group__action usa-button'>Close</button>
</div>
{% endcall %}
{% call Modal(name='pendingCCPOApproval', dismissable=True) %}
<h1>{{ "requests.index.financial_verification_submitted_title" | translate }}</h1>
{% include 'fragments/pending_ccpo_approval_modal.html' %}
<div class='action-group'>
<button autofocus type='button' v-on:click="closeModal('pendingCCPOApproval')" class='action-group__action usa-button'>Close</button>
</div>
{% endcall %}
{% call Modal(name='pendingCCPOAcceptance', dismissable=True) %}
<h1>{{ "requests.index.request_submitted_title" | translate }}</h1>
{% include 'fragments/pending_ccpo_acceptance_alert.html' %}
<div class='action-group'>
<button autofocus type='button' v-on:click="closeModal('pendingCCPOAcceptance')" class='action-group__action usa-button'>Close</button>
</div>
{% endcall %}
<requests-list
inline-template
v-bind:requests='{{ requests | tojson }}'
v-bind:is-extended='{{ extended_view | tojson }}'
v-bind:statuses='{{ possible_statuses | tojson }}'
v-bind:dod-components='{{ possible_dod_components | tojson }}'
>
<div>
{% include "fragments/flash.html" %}
{% if not requests %}
{{ EmptyState(
("requests.index.no_portfolios_label" | translate),
sub_message=("requests.index.no_portfolios_sub_message" | translate),
action_label=("requests.index.no_portfolios_action_label" | translate),
action_href=url_for('requests.requests_form_new', screen=1),
icon='document'
) }}
{% else %}
{% if extended_view %}
<div class="row kpi">
<div class="kpi__item col col--grow">
<div class="kpi__item__value">{{ kpi_inprogress }}</div>
<div class="kpi__item__description">{{ "requests.index.requests_in_progress" | translate }}</div>
</div>
<div class="kpi__item col col--grow">
<div class="kpi__item__value">{{ kpi_pending }}</div>
<div class="kpi__item__description">{{ "requests.index.pending_ccpo_action" | translate }}</div>
</div>
<div class="kpi__item col col--grow">
<div class="kpi__item__value">{{ kpi_completed }}</div>
<div class="kpi__item__description">{{ "requests.index.approved_requests" | translate }}</div>
</div>
</div>
{% endif %}
<div v-cloak class="col col--grow">
{% if extended_view %}
<form @submit.prevent class='search-bar'>
<div class='usa-input search-input'>
<label for='requests-search'>{{ "requests.index.search_by_name" | translate }}</label>
<input v-model='searchValue' type='search' id='requests-search' name='requests-search' placeholder="Search by name"/>
<button>
<span class="hide">{{ "requests.index.search_button_text" | translate }}</span>
</button>
</div>
<div class="search-bar__filters">
<div class='usa-input'>
<label for='filter-status'>{{ "requests.index.filter_requests_by_status_label" | translate }}</label>
<select v-model="statusValue" id="filter-status" name="filter-status">
<option value="" selected disabled>{{ "requests.index.filter_by_status" | translate }}</option>
<option value="">{{ "requests.index.all_filter" | translate }}</option>
<option v-for="status in statuses" :value="status">!{ status }</option>
</select>
</div>
<div class='usa-input'>
<label for='filter-dod-component'>{{ "requests.index.filter_requests_by_dod_component" | translate }}</label>
<select v-model="dodComponentValue" id="filter-dod-component" name="filter-dod-component">
<option value="" selected disabled>{{ "requests.index.filter_by_dod_component" | translate }}</option>
<option value="">{{ "requests.index.all_filter" | translate }}</option>
<option v-for="dodComponent in dodComponents" :value="dodComponent">!{ dodComponent }</option>
</select>
</div>
</div>
</form>
{% endif %}
<div v-cloak class='responsive-table-wrapper'>
<table v-if="filteredRequests.length">
<thead>
<tr>
<th @click.prevent="updateSortValue(column.attr)" v-for="column in getColumns()"scope="col">
!{ column.displayName }
<span class="sorting-direction" v-if="column.attr === sort.columnName && sort.isAscending">
{{ Icon("caret_down") }}
</span>
<span class="sorting-direction" v-else-if="column.attr === sort.columnName && !sort.isAscending">
{{ Icon("caret_up") }}
</span>
</th>
</tr>
</thead>
<tbody v-for="r in filteredRequests">
<tr>
<th scope="row">
<a class='icon-link icon-link--large' :href="r.edit_link">!{ r.name }</a>
<span v-if="r.action_required" class="label label--info">
{{ "requests.index.action_required" | translate }}
</span>
</th>
<td>
<local-datetime
v-if="r.last_submission_timestamp"
:timestamp="r.last_submission_timestamp"
format="M/D/YYYY">
</local-datetime>
<span v-else><span>
</td>
{% if extended_view %}
<td><local-datetime :timestamp="r.last_edited_timestamp" format="M/D/YYYY"></td>
<td>!{ r.full_name }</td>
{% endif %}
<td>!{ dollars(r.annual_usage) }</td>
<td>
<a v-if="r.is_approved" class="icon-link icon-link--large" :href="r.portfolio_link">
!{ r.status }
</a>
<span v-else>
!{ r.status }
</span>
</td>
{% if extended_view %}
<td>!{ r.dod_component }</td>
{% endif %}
</tr>
</tbody>
</table>
<div v-else>
{{ EmptyState(
("requests.index.no_requests_found" | translate),
action_label=None,
action_href=None,
sub_message=("requests.index.try_different_search" | translate),
icon=None
) }}
</div>
</div>
</div>
{% endif %}
</div>
</requests-list>
{% endblock %}

View File

@ -1,21 +0,0 @@
<div class="progress-menu progress-menu--four">
<ul>
{% for s in screens %}
{% if jedi_request and s.section in jedi_request.body %}
{% set step_indicator = 'complete' %}
{% elif loop.index == current %}
{% set step_indicator = 'active' %}
{% else %}
{% set step_indicator = 'incomplete' %}
{% endif %}
<li class="progress-menu__item progress-menu__item--{{ step_indicator }}">
<a href="{{ url_for('requests.requests_form_update', screen=loop.index, request_id=request_id) if request_id else url_for('requests.requests_form_new', screen=loop.index) }}"
{% if g.matchesPath('/requests/new/{{ loop.index + 1 }}') %}class="active"{% endif %}
>
{{ s['title'] }}
</a>
</li>
{% endfor %}
</ul>
</div>

View File

@ -1,21 +0,0 @@
{% set pending_url=url_for('requests.view_request_details', request_id=jedi_request.id) %}
{% set financial_url=url_for('requests.financial_verification', request_id=jedi_request.id) %}
<div class="progress-menu progress-menu--two">
<ul>
<li class="progress-menu__item progress-menu__item--complete">
<a href="{{ pending_url }}">
{{ "requests.review_menu.request_information_link_text" | translate }}
</a>
</li>
{% if g.matchesPath(financial_url) %}
{% set financial_status="active" %}
{% else %}
{% set financial_status="incomplete" %}
{% endif %}
<li class="progress-menu__item progress-menu__item--{{ financial_status }}">
<a href="{{ financial_url }}">
{{ "requests.review_menu.financial_verification_information_link_text" | translate }}
</a>
</li>
</ul>
</div>

View File

@ -1,143 +0,0 @@
{% extends 'requests/_new.html' %}
{% from "components/text_input.html" import TextInput %}
{% from "components/options_input.html" import OptionsInput %}
{% from "components/date_input.html" import DateInput %}
{% block heading %}
Details of Use
{% endblock %}
{% block form %}
{% include "fragments/flash.html" %}
<details-of-use inline-template v-bind:initial-data='{{ f.data|tojson }}'>
<div>
{{ "requests.screen-1.form_instructions" | translate }}
<h2>{{ "requests.screen-1.general_title_text"| translate }}</h2>
{{ OptionsInput(f.dod_component) }}
{{
TextInput(
f.jedi_usage,
paragraph=True,
placeholder=("requests.screen-1.jedi_usage_placeholder" | translate)
)
}}
<h2>{{ "requests.screen-1.cloud_readiness_title_text" | translate }}</h2>
{{
TextInput(
f.num_software_systems,
validation="integer",
tooltip=("requests.screen-1.num_software_systems_tooltip" | translate),
placeholder="0"
)
}}
{{
OptionsInput(
f.jedi_migration,
tooltip=("requests.screen-1.jedi_migration_tooltip" | translate)
)
}}
<transition name='slide'>
<template v-if="jediMigrationOptionSelected">
<fieldset class='form__sub-fields' v-if='isJediMigration' v-cloak>
<legend class='usa-sr-only'>
{{ "requests.screen-1.questions_title_text" | translate }}
</legend>
{{
OptionsInput(
f.rationalization_software_systems,
tooltip=("requests.screen-1.rationalization_software_systems_tooltip" | translate)
)
}}
{{ OptionsInput(f.technical_support_team) }}
<transition name='slide'>
<template v-if="hasTechnicalSupportTeam">
{{ OptionsInput(f.organization_providing_assistance) }}
</template>
</transition>
{{ OptionsInput(
f.engineering_assessment,
tooltip=("requests.screen-1.engineering_assessment_tooltip" | translate)
)
}}
{{ OptionsInput(f.data_transfers) }}
{{ OptionsInput(f.expected_completion_date) }}
</fieldset>
<template v-if='!isJediMigration' v-cloak>
{{
OptionsInput(
f.cloud_native,
tooltip=("requests.screen-1.cloud_native_tooltip" | translate)
)
}}
</template>
</template>
</transition>
<h2>{{ "requests.screen-1.financial_usage_title" | translate }}</h2>
{{
TextInput(
f.estimated_monthly_spend,
tooltip=("requests.screen-1.estimated_monthly_spend_tooltip" | translate),
validation="dollars",
placeholder="$0"
)
}}
<div class='alert alert-info'>
<div class='alert__content'>
<div class='alert__message'>
{{ "requests.screen-1.approximate_annual_spend_paragraph" | translate }}
</div>
</div>
</div>
<transition name='slide'>
<template v-if="annualSpend > {{ annual_spend_threshold }}">
<fieldset class='form__sub-fields'>
<h3>
{{ "requests.screen-1.additional_plan_details_title" | translate }}
</h3>
{{ TextInput(f.number_user_sessions, validation='integer', placeholder="0") }}
{{
TextInput(
f.average_daily_traffic,
tooltip=("requests.screen-1.average_daily_traffic_tooltip" | translate),
validation="integer",
placeholder="0"
)
}}
{{
TextInput(
f.average_daily_traffic_gb,
tooltip=("requests.screen-1.average_daily_traffic_gb_tooltip" | translate),
validation="gigabytes",
placeholder="0GB"
)
}}
</fieldset>
</template>
</transition>
{{
TextInput(
f.dollar_value,
validation='dollars',
placeholder='$0',
tooltip=("requests.screen-1.dollar_value_tooltip" | translate)
)
}}
{{ DateInput(f.start_date, placeholder='MM / DD / YYYY', validation='date') }}
{{ TextInput(f.name, placeholder='Request Name', validation='portfolioName') }}
</div>
</details-of-use>
{% endblock %}

View File

@ -1,32 +0,0 @@
{% extends 'requests/_new.html' %}
{% from "components/text_input.html" import TextInput %}
{% from "components/options_input.html" import OptionsInput %}
{% from "components/date_input.html" import DateInput %}
{% from "components/phone_input.html" import PhoneInput %}
{% block heading %}
Information About You
{% endblock %}
{% block form %}
{% include "fragments/flash.html" %}
<p>Please tell us more about you.</p>
<div class='form-row'>
<div class='form-col form-col--half'>{{ TextInput(f.fname_request) }}</div>
<div class='form-col form-col--half'>{{ TextInput(f.lname_request) }}</div>
</div>
{{ TextInput(f.email_request, placeholder='e.g. jane@mail.mil', validation='email') }}
{{ PhoneInput(f.phone_number, f.phone_ext, placeholder_phone='e.g. (123) 456-7890') }}
<p>We want to collect the following information from you for security auditing and determining priviledged user access.</p>
{{ OptionsInput(f.service_branch) }}
{{ OptionsInput(f.citizenship) }}
{{ OptionsInput(f.designation) }}
{{ DateInput(f.date_latest_training,tooltip="When was the last time you completed the IA training? <br> Information Assurance (IA) training is an important step in cyber awareness.",placeholder="MM / DD / YYYY", validation="date") }}
{% endblock %}

View File

@ -1,48 +0,0 @@
{% extends 'requests/_new.html' %}
{% from "components/text_input.html" import TextInput %}
{% from "components/checkbox_input.html" import CheckboxInput %}
{% block heading %}
Designate a Portfolio Owner
{% endblock %}
{% block form %}
{% include "fragments/flash.html" %}
<poc inline-template v-bind:initial-data='{{ f.data|tojson }}'>
<div>
<p>The Portfolio Owner is the primary point of contact and technical administrator of the JEDI Cloud Portfolio and will have the
following responsibilities:</p>
<ul>
<li>Organize your cloud-hosted systems into applications and environments</li>
<li>Add users to this portfolio and manage members</li>
<li>Manage access to the JEDI Cloud service providers portal</li>
</ul>
</p>
<p>This person must be a DoD employee (not a contractor).</p>
<p>The Portfolio Owner may be you. You will be able to add other administrators later. This person will be invited via email
once your request is approved.</p>
{{ CheckboxInput(f.am_poc) }}
<template v-if="!am_poc" v-cloak>
<div class='form-row'>
<div class='form-col form-col--half'>{{ TextInput(f.fname_poc) }}</div>
<div class='form-col form-col--half'>{{ TextInput(f.lname_poc) }}</div>
</div>
<div class='form-row'>
<div class='form-col form-col--half'>{{ TextInput(f.email_poc, validation='email', placeholder='e.g. jane@mail.mil') }}</div>
<div class='form-col form-col--half'>{{ TextInput(f.dodid_poc, validation='dodId', placeholder='10-digit number on back of CAC') }}</div>
</div>
</template>
</div>
</poc>
{% endblock %}

View File

@ -1,40 +0,0 @@
{% macro RequiredLabel() -%}
<span class='label label--error'>Response Required</span>
{%- endmacro %}
{% extends 'requests/_new.html' %}
{% from "components/text_input.html" import TextInput %}
{% from "components/icon.html" import Icon %}
{% block heading %}
Review &amp; Submit
{% endblock %}
{% block form_action %}
<form method='POST' action="{{ url_for('requests.requests_submit', request_id=request_id) }}" autocomplete="off">
{% endblock %}
{% block form %}
<p>Before you can submit your request, please take a moment to review the information entered in the form. You may make changes by clicking the edit link on each section. When all information looks right, go ahead and submit.</p>
{% include "fragments/flash.html" %}
{% with editable=True %}
{% include "requests/_review.html" %}
{% endwith %}
{% endblock %}
{% block next %}
<div class='action-group'>
<input type='submit' class='usa-button usa-button-primary' value='Submit' {{ "disabled" if not can_submit else "" }} />
</div>
</form>
{% endblock %}

View File

@ -1,33 +0,0 @@
<div class="sidenav">
<ul>
<li>
<a class="sidenav__link" href="/requests">&#8249; All requests</a>
</li>
</ul>
<ul>
{% for i,s in enumerate(screens) %}
{% if s["show"] %}
<li>
{% if i+1==current %}
<a class="sidenav__link sidenav__link--active" href="{{ reverse_url('request_form_update', i+1, request_id) if request_id else reverse_url('request_form_new',i+1) }}">
{{ i+1 }}. {{ s['title'] }}
</a>
{% if s.get('subitems') %}
<ul>
{% for j,t in enumerate(s['subitems']) %}
<li><a class="sidenav__link" href="#{{ t['id'] }}">{{ t['title'] }}</a></li>
{% end %}
</ul>
{% end %}
{% else %}
<a class="sidenav__link" href="{{ reverse_url('request_form_update', i+1, request_id) if request_id else reverse_url('request_form_new',i+1) }}">
{{ i+1 }}. {{ s['title'] }}
</a>
{% end %}
</li>
{% end %}
{% end %}
</ul>
</div>