Remove request-related templates
This commit is contained in:
parent
019e7f24c8
commit
95f2126881
@ -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 %}
|
@ -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 %}
|
@ -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 %}
|
@ -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 %}
|
@ -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 %}
|
@ -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 %}
|
@ -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 %}
|
@ -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>
|
@ -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>
|
@ -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 %}
|
@ -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 %}
|
@ -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 provider’s 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 %}
|
@ -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 & 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 %}
|
@ -1,33 +0,0 @@
|
||||
<div class="sidenav">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="sidenav__link" href="/requests">‹ 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>
|
Loading…
x
Reference in New Issue
Block a user