commit
687ae30268
@ -30,7 +30,10 @@ def readableInteger(value):
|
||||
|
||||
|
||||
def getOptionLabel(value, options):
|
||||
return next(tup[1] for tup in options if tup[0] == value)
|
||||
try:
|
||||
return next(tup[1] for tup in options if tup[0] == value)
|
||||
except StopIteration:
|
||||
return
|
||||
|
||||
|
||||
def mixedContentToJson(value):
|
||||
|
@ -7,6 +7,7 @@ requests_bp = Blueprint("requests", __name__)
|
||||
from . import index
|
||||
from . import requests_form
|
||||
from . import financial_verification
|
||||
from . import approval
|
||||
|
||||
|
||||
@requests_bp.context_processor
|
||||
|
9
atst/routes/requests/approval.py
Normal file
9
atst/routes/requests/approval.py
Normal file
@ -0,0 +1,9 @@
|
||||
from flask import render_template
|
||||
|
||||
from . import requests_bp
|
||||
from atst.forms.data import SERVICE_BRANCHES
|
||||
|
||||
|
||||
@requests_bp.route("/request_approval", methods=["GET"])
|
||||
def requests_approval():
|
||||
return render_template("request_approval.html", service_branches=SERVICE_BRANCHES)
|
@ -3,6 +3,7 @@
|
||||
flex-direction: row-reverse;
|
||||
align-items: center;
|
||||
margin-top: $gap * 4;
|
||||
margin-bottom: $gap * 4;
|
||||
|
||||
.usa-button,
|
||||
a {
|
||||
|
@ -96,3 +96,9 @@
|
||||
@include panel-actions;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-bottom: 1px dashed $color-gray-light;
|
||||
margin: 0px $site-margins*-4;
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
{% extends "base.html.to" %}
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% from "components/icon.html" import Icon %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<article class='col col--grow request-approval'>
|
||||
{# A {% module Alert() %} goes here, if alerting be needed #}
|
||||
|
||||
<form>
|
||||
<section class='panel'>
|
||||
@ -13,52 +14,115 @@
|
||||
</header>
|
||||
|
||||
<div class='panel__content'>
|
||||
|
||||
<p>Ongoing maintainence for Death Star (a moon-sized Imperial military battlestation armed with a planet-destroying superlaser). Its definitely hasn't been sabotaged from the start.</p>
|
||||
<div class='row row--halves request-approval__info-columns'>
|
||||
<div class='col'>
|
||||
<h2 class='h3 request-approval__columns__heading'>Information About Requestor</h2>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>Name</dt>
|
||||
<dd>Firmus Piett</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>E-mail</dt>
|
||||
<dd>piett@empire.mil</dd>
|
||||
</div>
|
||||
{% with data = {
|
||||
"primary_poc": {
|
||||
"am_poc": False,
|
||||
"dodid_poc": "1234567890",
|
||||
"email_poc": "fake@email.com",
|
||||
"fname_poc": "Amanda",
|
||||
"lname_poc": "Adamson",
|
||||
},
|
||||
"details_of_use": {
|
||||
"jedi_usage": "adf",
|
||||
"start_date": "2018-08-08",
|
||||
"cloud_native": "yes",
|
||||
"dollar_value": 500000,
|
||||
"dod_component": "Air Force, Department of the",
|
||||
"data_transfers": "Less than 100GB",
|
||||
"expected_completion_date": "Less than 1 month",
|
||||
"jedi_migration": "yes",
|
||||
"num_software_systems": 1,
|
||||
"number_user_sessions": 2,
|
||||
"average_daily_traffic": 1,
|
||||
"engineering_assessment": "yes",
|
||||
"technical_support_team": "yes",
|
||||
"estimated_monthly_spend": 100,
|
||||
"average_daily_traffic_gb": 4,
|
||||
"rationalization_software_systems": "yes",
|
||||
"organization_providing_assistance": "In-house staff",
|
||||
},
|
||||
"information_about_you": {
|
||||
"citizenship": "United States",
|
||||
"designation": "military",
|
||||
"phone_number": "1234567890",
|
||||
"email_request": "fake@email.mil",
|
||||
"fname_request": "Amanda",
|
||||
"lname_request": "Adamson",
|
||||
"service_branch": "Air Force, Department of the",
|
||||
"date_latest_training": "2018-08-06",
|
||||
}
|
||||
}, service_branches=service_branches %}
|
||||
{% include "requests/_review.html" %}
|
||||
{% endwith %}
|
||||
|
||||
<div>
|
||||
<dt>Phone Number</dt>
|
||||
<dd>(123) 456-7890</dd>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Location</dt>
|
||||
<dd>Death Star</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
<section class='panel'>
|
||||
<header class='panel__heading'>
|
||||
<h2 class='h3'>Approval Notes</h2>
|
||||
</header>
|
||||
|
||||
<div class='panel__content'>
|
||||
<p>Here is some good text explaining what the CCPO needs to do in order to approve the request. This text should also explain why we are asking for multiple people's names and the risk of boiling the ocean.</p>
|
||||
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='notes'>Notes</label>
|
||||
<textarea id='notes' placeholder='Add notes or comments related to the approval or disapproval of this request.'/></textarea>
|
||||
</div>
|
||||
|
||||
<div class='form-row'>
|
||||
<div class='form-col'>
|
||||
<div class='usa-input'>
|
||||
<label for='mo-behalf-name'>Mission Owner approval on behalf of</label>
|
||||
<input id='mo-behalf-name' type='text' placeholder='Name of approving officer'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='mo-behalf-email'>Mission Owner e-mail</label>
|
||||
<input id='mo-behalf-email' type='email' placeholder='i.e. name@mail.mil'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='mo-behalf-phone'>Mission Owner phone number</label>
|
||||
<input id='mo-behalf-phone' type='tel' placeholder='i.e. (123) 456-7890'/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='col'>
|
||||
<h2 class='h3 request-approval__columns__heading'>Funding Information</h2>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>Task Order Number</dt>
|
||||
<dd>4523542345322345234</dd>
|
||||
</div>
|
||||
<div class='form-col'>
|
||||
<div class='usa-input'>
|
||||
<label for='ccpo-behalf-name'>CCPO approval on behalf of</label>
|
||||
<input id='ccpo-behalf-name' type='text' placeholder='Name of approving officer'/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Funding Type</dt>
|
||||
<dd class='diff--removed'><span class='hide'>Previously: </span>Modest Destructive Power</dd>
|
||||
<dd class='diff--added'><span class='hide'>Changed to: </span>Absolute Destructive Power</dd>
|
||||
</div>
|
||||
</dl>
|
||||
<div class='usa-input'>
|
||||
<label for='ccpo-behalf-email'>CCPO e-mail</label>
|
||||
<input id='ccpo-behalf-email' type='email' placeholder='i.e. name@mail.mil'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='ccpo-behalf-phone'>CCPO phone number</label>
|
||||
<input id='ccpo-behalf-phone' type='tel' placeholder='i.e. (123) 456-7890'/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class='action-group'>
|
||||
<a href='/' class='usa-button usa-button-big'>Approve Request</a>
|
||||
<a href='/' class='usa-button usa-button-big usa-button-secondary'>Deny Request</a>
|
||||
<a href='/' class='icon-link'>
|
||||
{{ Icon('x') }}
|
||||
<span>Cancel</span>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
<section class='panel'>
|
||||
<header class='panel__heading'>
|
||||
<h2 class='h3 request-approval__columns__heading'>Approval Log</h2>
|
||||
@ -125,65 +189,8 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class='panel'>
|
||||
<div class='panel__content'>
|
||||
<p>Here is some good text explaining what the CCPO needs to do in order to approve the request. This text should also explain why we are asking for multiple people's names and the risk of boiling the ocean.</p>
|
||||
|
||||
{# All instances of .usa-input groups here should be replaced with {% module TextInput(wtforms.fields.Field) %} #}
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='notes'>Notes</label>
|
||||
<textarea id='notes' placeholder='Add notes or comments related to the approval or disapproval of this request.'/></textarea>
|
||||
</div>
|
||||
|
||||
<div class='form-row'>
|
||||
<div class='form-col'>
|
||||
<div class='usa-input'>
|
||||
<label for='mo-behalf-name'>Mission Owner approval on behalf of</label>
|
||||
<input id='mo-behalf-name' type='text' placeholder='Name of approving officer'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='mo-behalf-email'>Mission Owner e-mail</label>
|
||||
<input id='mo-behalf-email' type='email' placeholder='i.e. name@mail.mil'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='mo-behalf-phone'>Mission Owner phone number</label>
|
||||
<input id='mo-behalf-phone' type='tel' placeholder='i.e. (123) 456-7890'/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='form-col'>
|
||||
<div class='usa-input'>
|
||||
<label for='ccpo-behalf-name'>CCPO approval on behalf of</label>
|
||||
<input id='ccpo-behalf-name' type='text' placeholder='Name of approving officer'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='ccpo-behalf-email'>CCPO e-mail</label>
|
||||
<input id='ccpo-behalf-email' type='email' placeholder='i.e. name@mail.mil'/>
|
||||
</div>
|
||||
|
||||
<div class='usa-input'>
|
||||
<label for='ccpo-behalf-phone'>CCPO phone number</label>
|
||||
<input id='ccpo-behalf-phone' type='tel' placeholder='i.e. (123) 456-7890'/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class='action-group'>
|
||||
<a href='/' class='usa-button usa-button-big'>Approve Request</a>
|
||||
<a href='/' class='usa-button usa-button-big usa-button-secondary'>Deny Request</a>
|
||||
<a href='/' class='icon-link'>
|
||||
{% module Icon('x') %}
|
||||
<span>Cancel</span>
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</article>
|
||||
|
||||
{% end %}
|
||||
{% endblock %}
|
||||
|
278
templates/requests/_review.html
Normal file
278
templates/requests/_review.html
Normal file
@ -0,0 +1,278 @@
|
||||
{% macro RequiredLabel() -%}
|
||||
<span class='label label--error'>Response Required</span>
|
||||
{%- endmacro %}
|
||||
|
||||
<hr>
|
||||
<h2>
|
||||
Details of Use
|
||||
{% if editable %}
|
||||
<a href="{{ url_for('requests.requests_form_update', screen=1, request_id=request_id) }}" class="icon-link">
|
||||
{{ Icon('edit') }}
|
||||
<span>Edit this section</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>DoD Component</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['dod_component'] %}
|
||||
{{ data['details_of_use']['dod_component'] | getOptionLabel(service_branches) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>JEDI Usage</dt>
|
||||
<dd>{{ data['details_of_use']['jedi_usage'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Number of software systems</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['num_software_systems'] %}
|
||||
{{ data['details_of_use']['num_software_systems'] | readableInteger }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>JEDI Migration</dt>
|
||||
<dd>{{ data['details_of_use']['jedi_migration'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
{% if data['details_of_use']['jedi_migration'] == 'yes' %}
|
||||
<div>
|
||||
<dt>Rationalization of Software Systems</dt>
|
||||
<dd>{{ data['details_of_use']['rationalization_software_systems'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Technical Support Team</dt>
|
||||
<dd>{{ data['details_of_use']['technical_support_team'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
|
||||
{% if data['details_of_use']['technical_support_team'] == 'yes' %}
|
||||
<div>
|
||||
<dt>Organization Providing Assistance</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['organization_providing_assistance'] %}
|
||||
{{ data['details_of_use']['organization_providing_assistance'] | getOptionLabel(assistance_org_types) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<dt>Engineering Assessment</dt>
|
||||
<dd>{{ data['details_of_use']['engineering_assessment'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Data Transfers</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['data_transfers'] %}
|
||||
{{ data['details_of_use']['data_transfers'] | getOptionLabel(data_transfer_amounts) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Expected Completion Date</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['expected_completion_date'] %}
|
||||
{{ data['details_of_use']['expected_completion_date'] | getOptionLabel(completion_date_ranges) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
<div>
|
||||
<dt>Cloud Native</dt>
|
||||
<dd>{{ data['details_of_use']['cloud_native'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<dt>Estimated Monthly Spend</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['estimated_monthly_spend'] %}
|
||||
{{ data['details_of_use']['estimated_monthly_spend'] | dollars }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
{% if jedi_request and jedi_request.annual_spend > annual_spend_threshold %}
|
||||
|
||||
<div>
|
||||
<dt>Number of User Sessions</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['number_user_sessions'] %}
|
||||
{{ data['details_of_use']['number_user_sessions'] | readableInteger }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Average Daily Traffic (Number of Requests)</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['average_daily_traffic'] %}
|
||||
{{ data['details_of_use']['average_daily_traffic'] | readableInteger }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Average Daily Traffic (GB)</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['average_daily_traffic_gb'] %}
|
||||
{{ data['details_of_use']['average_daily_traffic_gb'] | readableInteger }} GB
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<dt>Total Spend</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['dollar_value'] %}
|
||||
{{ data['details_of_use']['dollar_value'] | dollars }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Start Date</dt>
|
||||
<dd>{{ data['details_of_use']['start_date'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
<hr>
|
||||
<h2>
|
||||
Information About You
|
||||
{% if editable %}
|
||||
<a href="{{ url_for('requests.requests_form_update', screen=2, request_id=request_id) }}" class="icon-link">
|
||||
{{ Icon('edit') }}
|
||||
<span>Edit this section</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>First Name</dt>
|
||||
<dd>{{ data['information_about_you']['fname_request'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Last Name</dt>
|
||||
<dd>{{ data['information_about_you']['lname_request'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Email Address</dt>
|
||||
<dd>{{ data['information_about_you']['email_request'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Phone Number</dt>
|
||||
<dd>
|
||||
{% if data['information_about_you']['phone_number'] %}
|
||||
{{ data['information_about_you']['phone_number'] | usPhone }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Service Branch or Agency</dt>
|
||||
<dd>
|
||||
{% if data['information_about_you']['service_branch'] %}
|
||||
{{ data['information_about_you']['service_branch'] | getOptionLabel(service_branches) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Citizenship</dt>
|
||||
<dd>{{ data['information_about_you']['citizenship'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Designation of Person</dt>
|
||||
<dd>
|
||||
{% if data['information_about_you']['designation'] %}
|
||||
{{ data['information_about_you']['designation'] | capitalize }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Latest Information Assurance (IA) Training completion date</dt>
|
||||
<dd>{{ data['information_about_you']['date_latest_training'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
<hr>
|
||||
<h2>
|
||||
Workspace Owner
|
||||
{% if editable %}
|
||||
<a href="{{ url_for('requests.requests_form_update', screen=3, request_id=request_id) }}" class="icon-link">
|
||||
{{ Icon('edit') }}
|
||||
<span>Edit this section</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>POC First Name</dt>
|
||||
<dd>{{ data['primary_poc']['fname_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>POC Last Name</dt>
|
||||
<dd>{{ data['primary_poc']['lname_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>POC Email Address</dt>
|
||||
<dd>{{ data['primary_poc']['email_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>DOD ID</dt>
|
||||
<dd>{{ data['primary_poc']['dodid_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
|
@ -28,274 +28,9 @@
|
||||
) }}
|
||||
{% endif %}
|
||||
|
||||
|
||||
<h2>
|
||||
Details of Use
|
||||
<a href="{{ url_for('requests.requests_form_update', screen=1, request_id=request_id) }}" class="icon-link">
|
||||
{{ Icon('edit') }}
|
||||
<span>Edit this section</span>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>DoD Component</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['dod_component'] %}
|
||||
{{ data['details_of_use']['dod_component'] | getOptionLabel(service_branches) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<dt>JEDI Usage</dt>
|
||||
<dd>{{ data['details_of_use']['jedi_usage'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Number of software systems</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['num_software_systems'] %}
|
||||
{{ data['details_of_use']['num_software_systems'] | readableInteger }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>JEDI Migration</dt>
|
||||
<dd>{{ data['details_of_use']['jedi_migration'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
{% if data['details_of_use']['jedi_migration'] == 'yes' %}
|
||||
<div>
|
||||
<dt>Rationalization of Software Systems</dt>
|
||||
<dd>{{ data['details_of_use']['rationalization_software_systems'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Technical Support Team</dt>
|
||||
<dd>{{ data['details_of_use']['technical_support_team'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
|
||||
{% if data['details_of_use']['technical_support_team'] == 'yes' %}
|
||||
<div>
|
||||
<dt>Organization Providing Assistance</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['organization_providing_assistance'] %}
|
||||
{{ data['details_of_use']['organization_providing_assistance'] | getOptionLabel(assistance_org_types) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<dt>Engineering Assessment</dt>
|
||||
<dd>{{ data['details_of_use']['engineering_assessment'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Data Transfers</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['data_transfers'] %}
|
||||
{{ data['details_of_use']['data_transfers'] | getOptionLabel(data_transfer_amounts) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Expected Completion Date</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['expected_completion_date'] %}
|
||||
{{ data['details_of_use']['expected_completion_date'] | getOptionLabel(completion_date_ranges) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
<div>
|
||||
<dt>Cloud Native</dt>
|
||||
<dd>{{ data['details_of_use']['cloud_native'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<dt>Estimated Monthly Spend</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['estimated_monthly_spend'] %}
|
||||
{{ data['details_of_use']['estimated_monthly_spend'] | dollars }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
{% if jedi_request and jedi_request.annual_spend > annual_spend_threshold %}
|
||||
|
||||
<div>
|
||||
<dt>Number of User Sessions</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['number_user_sessions'] %}
|
||||
{{ data['details_of_use']['number_user_sessions'] | readableInteger }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Average Daily Traffic (Number of Requests)</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['average_daily_traffic'] %}
|
||||
{{ data['details_of_use']['average_daily_traffic'] | readableInteger }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Average Daily Traffic (GB)</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['average_daily_traffic_gb'] %}
|
||||
{{ data['details_of_use']['average_daily_traffic_gb'] | readableInteger }} GB
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
<dt>Total Spend</dt>
|
||||
<dd>
|
||||
{% if data['details_of_use']['dollar_value'] %}
|
||||
{{ data['details_of_use']['dollar_value'] | dollars }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Start Date</dt>
|
||||
<dd>{{ data['details_of_use']['start_date'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
|
||||
<h2>
|
||||
Information About You
|
||||
<a href="{{ url_for('requests.requests_form_update', screen=2, request_id=request_id) }}" class="icon-link">
|
||||
{{ Icon('edit') }}
|
||||
<span>Edit this section</span>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>First Name</dt>
|
||||
<dd>{{ data['information_about_you']['fname_request'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Last Name</dt>
|
||||
<dd>{{ data['information_about_you']['lname_request'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Email Address</dt>
|
||||
<dd>{{ data['information_about_you']['email_request'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Phone Number</dt>
|
||||
<dd>
|
||||
{% if data['information_about_you']['phone_number'] %}
|
||||
{{ data['information_about_you']['phone_number'] | usPhone }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Service Branch or Agency</dt>
|
||||
<dd>
|
||||
{% if data['information_about_you']['service_branch'] %}
|
||||
{{ data['information_about_you']['service_branch'] | getOptionLabel(service_branches) }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Citizenship</dt>
|
||||
<dd>{{ data['information_about_you']['citizenship'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Designation of Person</dt>
|
||||
<dd>
|
||||
{% if data['information_about_you']['designation'] %}
|
||||
{{ data['information_about_you']['designation'] | capitalize }}
|
||||
{% else %}
|
||||
{{ RequiredLabel() }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>Latest Information Assurance (IA) Training completion date</dt>
|
||||
<dd>{{ data['information_about_you']['date_latest_training'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
|
||||
<h2>
|
||||
Primary Point of Contact
|
||||
<a href="{{ url_for('requests.requests_form_update', screen=3, request_id=request_id) }}" class="icon-link">
|
||||
{{ Icon('edit') }}
|
||||
<span>Edit this section</span>
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>POC First Name</dt>
|
||||
<dd>{{ data['primary_poc']['fname_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>POC Last Name</dt>
|
||||
<dd>{{ data['primary_poc']['lname_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>POC Email Address</dt>
|
||||
<dd>{{ data['primary_poc']['email_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<dt>DOD ID</dt>
|
||||
<dd>{{ data['primary_poc']['dodid_poc'] or RequiredLabel() }}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
{% with editable=True %}
|
||||
{% include "requests/_review.html" %}
|
||||
{% endwith %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
97
yarn.lock
97
yarn.lock
@ -65,7 +65,7 @@ ajv@^4.9.1:
|
||||
co "^4.6.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ajv@^5.1.0, ajv@^5.3.0:
|
||||
ajv@^5.1.0:
|
||||
version "5.5.2"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
||||
dependencies:
|
||||
@ -276,10 +276,6 @@ aws4@^1.2.1, aws4@^1.6.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"
|
||||
|
||||
aws4@^1.8.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
|
||||
|
||||
babel-code-frame@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
|
||||
@ -1035,15 +1031,7 @@ browserslist@^3.2.6:
|
||||
caniuse-lite "^1.0.30000844"
|
||||
electron-to-chromium "^1.3.47"
|
||||
|
||||
browserslist@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.1.tgz#61c05ce2a5843c7d96166408bc23d58b5416e818"
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000865"
|
||||
electron-to-chromium "^1.3.52"
|
||||
node-releases "^1.0.0-alpha.10"
|
||||
|
||||
browserslist@^4.0.2:
|
||||
browserslist@^4.0.0, browserslist@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.2.tgz#294388f5844bb3ab15ef7394ca17f49bf7a4e6f1"
|
||||
dependencies:
|
||||
@ -1195,11 +1183,7 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
|
||||
version "1.0.30000872"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000872.tgz#3f6e53b63d373768bf99e896133d66ef89c49999"
|
||||
|
||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000865:
|
||||
version "1.0.30000865"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz#70026616e8afe6e1442f8bb4e1092987d81a2f25"
|
||||
|
||||
caniuse-lite@^1.0.30000876, caniuse-lite@^1.0.30000878:
|
||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000876, caniuse-lite@^1.0.30000878:
|
||||
version "1.0.30000878"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000878.tgz#c644c39588dd42d3498e952234c372e5a40a4123"
|
||||
|
||||
@ -1450,7 +1434,7 @@ combine-source-map@^0.8.0, combine-source-map@~0.8.0:
|
||||
lodash.memoize "~3.0.3"
|
||||
source-map "~0.5.3"
|
||||
|
||||
combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5, combined-stream@~1.0.6:
|
||||
combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
|
||||
dependencies:
|
||||
@ -2079,11 +2063,7 @@ ee-first@1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||
|
||||
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.52:
|
||||
version "1.3.55"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.55.tgz#f150e10b20b77d9d41afcca312efe0c3b1a7fdce"
|
||||
|
||||
electron-to-chromium@^1.3.57:
|
||||
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.57:
|
||||
version "1.3.59"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.59.tgz#6377db04d8d3991d6286c72ed5c3fde6f4aaf112"
|
||||
|
||||
@ -2262,7 +2242,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
|
||||
assign-symbols "^1.0.0"
|
||||
is-extendable "^1.0.1"
|
||||
|
||||
extend@~3.0.0, extend@~3.0.1, extend@~3.0.2:
|
||||
extend@~3.0.0, extend@~3.0.1:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||
|
||||
@ -2380,7 +2360,7 @@ form-data@~2.1.1:
|
||||
combined-stream "^1.0.5"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
form-data@~2.3.1, form-data@~2.3.2:
|
||||
form-data@~2.3.1:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
|
||||
dependencies:
|
||||
@ -2630,13 +2610,6 @@ har-validator@~5.0.3:
|
||||
ajv "^5.1.0"
|
||||
har-schema "^2.0.0"
|
||||
|
||||
har-validator@~5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
|
||||
dependencies:
|
||||
ajv "^5.3.0"
|
||||
har-schema "^2.0.0"
|
||||
|
||||
has-ansi@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
|
||||
@ -3702,7 +3675,7 @@ mime-db@~1.35.0:
|
||||
version "1.35.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47"
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.7:
|
||||
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
||||
version "2.1.19"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0"
|
||||
dependencies:
|
||||
@ -3954,19 +3927,13 @@ node-pre-gyp@^0.10.0:
|
||||
semver "^5.3.0"
|
||||
tar "^4"
|
||||
|
||||
node-releases@^1.0.0-alpha.10:
|
||||
version "1.0.0-alpha.10"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.10.tgz#61c8d5f9b5b2e05d84eba941d05b6f5202f68a2a"
|
||||
dependencies:
|
||||
semver "^5.3.0"
|
||||
|
||||
node-releases@^1.0.0-alpha.11:
|
||||
version "1.0.0-alpha.11"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a"
|
||||
dependencies:
|
||||
semver "^5.3.0"
|
||||
|
||||
node-sass@^4.9.3:
|
||||
node-sass@^4.9.2:
|
||||
version "4.9.3"
|
||||
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224"
|
||||
dependencies:
|
||||
@ -4292,10 +4259,6 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
|
||||
|
||||
oauth-sign@~0.9.0:
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
||||
|
||||
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
@ -5139,7 +5102,7 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0
|
||||
source-map "^0.5.6"
|
||||
supports-color "^3.2.3"
|
||||
|
||||
postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.19:
|
||||
postcss@^6.0.0, postcss@^6.0.19:
|
||||
version "6.0.23"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
|
||||
dependencies:
|
||||
@ -5241,10 +5204,6 @@ pseudomap@^1.0.1, pseudomap@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
|
||||
|
||||
psl@^1.1.24:
|
||||
version "1.1.29"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
|
||||
|
||||
public-encrypt@^4.0.0:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994"
|
||||
@ -5297,7 +5256,7 @@ qs@~6.4.0:
|
||||
version "6.4.0"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
|
||||
|
||||
qs@~6.5.1, qs@~6.5.2:
|
||||
qs@~6.5.1:
|
||||
version "6.5.2"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
|
||||
|
||||
@ -5606,7 +5565,7 @@ repeating@^2.0.0:
|
||||
dependencies:
|
||||
is-finite "^1.0.0"
|
||||
|
||||
request@2.87.0, request@^2.74.0, request@^2.81.0:
|
||||
request@2.87.0, request@^2.74.0, request@^2.81.0, request@^2.87.0:
|
||||
version "2.87.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
|
||||
dependencies:
|
||||
@ -5658,31 +5617,6 @@ request@2.87.0, request@^2.74.0, request@^2.81.0:
|
||||
tunnel-agent "^0.6.0"
|
||||
uuid "^3.0.0"
|
||||
|
||||
request@^2.87.0:
|
||||
version "2.88.0"
|
||||
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
|
||||
dependencies:
|
||||
aws-sign2 "~0.7.0"
|
||||
aws4 "^1.8.0"
|
||||
caseless "~0.12.0"
|
||||
combined-stream "~1.0.6"
|
||||
extend "~3.0.2"
|
||||
forever-agent "~0.6.1"
|
||||
form-data "~2.3.2"
|
||||
har-validator "~5.1.0"
|
||||
http-signature "~1.2.0"
|
||||
is-typedarray "~1.0.0"
|
||||
isstream "~0.1.2"
|
||||
json-stringify-safe "~5.0.1"
|
||||
mime-types "~2.1.19"
|
||||
oauth-sign "~0.9.0"
|
||||
performance-now "^2.1.0"
|
||||
qs "~6.5.2"
|
||||
safe-buffer "^5.1.2"
|
||||
tough-cookie "~2.4.3"
|
||||
tunnel-agent "^0.6.0"
|
||||
uuid "^3.3.2"
|
||||
|
||||
require-directory@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
||||
@ -6499,13 +6433,6 @@ tough-cookie@~2.3.0, tough-cookie@~2.3.3:
|
||||
dependencies:
|
||||
punycode "^1.4.1"
|
||||
|
||||
tough-cookie@~2.4.3:
|
||||
version "2.4.3"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
|
||||
dependencies:
|
||||
psl "^1.1.24"
|
||||
punycode "^1.4.1"
|
||||
|
||||
trim-newlines@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
|
||||
|
Loading…
x
Reference in New Issue
Block a user