Merge pull request #543 from dod-ccpo/update-to-form-part-2

Update Task Order Form - Part 2
This commit is contained in:
leigh-mil
2019-01-17 10:53:43 -05:00
committed by GitHub
17 changed files with 402 additions and 201 deletions

View File

@@ -33,10 +33,10 @@
<li>
{% if choice[0] != 'other' %}
<input type='checkbox' name='{{ field.name }}' id='{{ field.name }}-{{ loop.index0 }}' value='{{ choice[0] }}' v-model="selections"/>
<label for='{{ field.name }}-{{ loop.index0 }}'>{{ choice[1] }}</label>
<label for='{{ field.name }}-{{ loop.index0 }}'>{{ choice[1] | safe }}</label>
{% else %}
<input @click="otherToggle" type='checkbox' name='{{ field.name }}' id='{{ field.name }}-{{ loop.index0 }}' value='other' v-model="selections"/>
<label for='{{ field.name }}-{{ loop.index0 }}'>{{ choice[1] }}</label>
<label for='{{ field.name }}-{{ loop.index0 }}'>{{ choice[1] | safe }}</label>
<div v-show="otherChecked">
<input type='text' name='{{ other_input_field.name}}' id='{{ field.name }}-other' v-model:value="otherText" aria-expanded='false' />

View File

@@ -2,7 +2,7 @@
{% block content %}
<div class="col">
<div class="col task-order-form">
{% include 'task_orders/new/menu.html' %}
@@ -19,8 +19,10 @@
<div class="panel">
<div class="panel__heading">
<div class="subtitle h2">Task Order Builder</div>
<h1>{% block heading %}{% endblock %}</h1>
<h1 class="task-order-form__heading subheading">
<div class="h2">Task Order Builder</div>
{% block heading %}{% endblock %}
</h1>
</div>
<div class="panel__content">

View File

@@ -12,7 +12,7 @@
{% block form %}
<!-- App Info Section -->
<h3>{{ "task_orders.new.app_info.basic_info_title"| translate }}</h3>
<h3 class="task-order-form__heading subheading">{{ "task_orders.new.app_info.basic_info_title"| translate }}</h3>
{{ TextInput(form.portfolio_name, placeholder="The name of your office or organization") }}
{{ TextInput(form.scope, paragraph=True) }}
<p><i>{{ "task_orders.new.app_info.sample_scope" | translate | safe }}</i></p>
@@ -20,20 +20,20 @@
<hr>
<h3>{{ "task_orders.new.app_info.project_title" | translate }}</h3>
<h3 id="reporting" class="subheading">{{ "task_orders.new.app_info.project_title" | translate }}</h3>
{{ OptionsInput(form.app_migration) }}
{{ OptionsInput(form.native_apps) }}
{{ MultiCheckboxInput(form.complexity, form.complexity_other) }}
<hr>
<h3>{{ "task_orders.new.app_info.team_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.app_info.team_title" | translate }}</h3>
{{ MultiCheckboxInput(form.dev_team, form.dev_team_other) }}
{{ OptionsInput(form.team_experience) }}
<hr>
<h3>{{ "task_orders.new.app_info.market_research_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.app_info.market_research_title" | translate }}</h3>
<p>{{ "task_orders.new.app_info.market_research_paragraph" | translate | safe }}</p>
{% endblock %}

View File

@@ -15,14 +15,14 @@
<funding inline-template v-bind:initial-data='{{ form.data|tojson }}'>
<div>
<!-- Get Funding Section -->
<h3>{{ "task_orders.new.funding.performance_period_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.funding.performance_period_title" | translate }}</h3>
<p>{{ "task_orders.new.funding.performance_period_description" | translate }}</p>
<p>{{ "task_orders.new.funding.performance_period_paragraph" | translate }}</p>
{{ OptionsInput(form.performance_length) }}
<hr>
<h3>{{ "task_orders.new.funding.estimate_usage_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.funding.estimate_usage_title" | translate }}</h3>
<p>{{ "task_orders.new.funding.estimate_usage_description" | translate }}</p>
<p><a class="icon-link" href="{{ url_for('atst.jedi_csp_calculator') }}">
{{ Icon("link")}} Cloud Service Provider's estimate calculator
@@ -36,15 +36,15 @@
<hr>
<h3>{{ "task_orders.new.funding.cloud_calculations_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.funding.cloud_calculations_title" | translate }}</h3>
<p>{{ "task_orders.new.funding.cloud_calculations_paragraph" | translate }}</p>
<h4>{{ "task_orders.new.funding.cloud_offerings_title" | translate }}</h4>
<h4 class="task-order-form__heading">{{ "task_orders.new.funding.cloud_offerings_title" | translate }}</h4>
<p>{{ "task_orders.new.funding.cloud_offerings_paragraph" | translate }}</p>
{{ TextInput(form.clin_01, validation='dollars', placeholder="$0.00") }}
{{ TextInput(form.clin_02, validation='dollars', disabled=(not config.CLASSIFIED)) }}
<h4>{{ "task_orders.new.funding.support_assistance_title" | translate }}</h4>
<h4 class="task-order-form__heading">{{ "task_orders.new.funding.support_assistance_title" | translate }}</h4>
<p>{{ "task_orders.new.funding.support_assistance_paragraph" | translate }}</p>
{{ TextInput(form.clin_03, validation='dollars', tooltip='The cloud support and assistance packages cannot be used as a primary development resource.', placeholder="$0.00") }}
{{ TextInput(form.clin_04, validation='dollars', tooltip='The cloud support and assistance packages cannot be used as a primary development resource.', disabled=(not config.CLASSIFIED)) }}
@@ -56,7 +56,7 @@
{% block next %}
<div class="row">
<div class="col col--grow">
<p>{{ "task_orders.new.funding.total" | translate }}<br><span id="to-target"></span></p>
<p><strong><span class="task-order-form__heading subheading">{{ "task_orders.new.funding.total" | translate }}</span><br><span id="to-target"></span></strong></p>
</div>
<div class="col col--grow">
{{ super() }}

View File

@@ -11,7 +11,7 @@
{% block form %}
<!-- Oversight Section -->
<h3>{{ "task_orders.new.oversight.ko_info_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.oversight.ko_info_title" | translate }}</h3>
<p>{{ "task_orders.new.oversight.ko_info_paragraph" | translate }}</p>
{{ UserInfo(form.ko_first_name, form.ko_last_name, form.ko_email, form.ko_phone_number) }}
{{ CheckboxInput(form.ko_invite) }}
@@ -19,7 +19,7 @@
<hr />
<h3>{{ "task_orders.new.oversight.cor_info_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.oversight.cor_info_title" | translate }}</h3>
<p>{{ "task_orders.new.oversight.cor_info_paragraph" | translate }}</p>
<div class='usa-input'>
<fieldset class="usa-input__choices">
@@ -35,7 +35,7 @@
<hr />
<h3>{{ "task_orders.new.oversight.so_info_title" | translate }}</h3>
<h3 class="subheading">{{ "task_orders.new.oversight.so_info_title" | translate }}</h3>
<p>{{ "task_orders.new.oversight.so_info_paragraph" | translate }}</p>
{{ UserInfo(form.so_first_name, form.so_last_name, form.so_email, form.so_phone_number) }}
{{ CheckboxInput(form.so_invite) }}

View File

@@ -5,145 +5,219 @@
{% from "components/icon.html" import Icon %}
{% block heading %}
Review & Download
{{ "task_orders.new.review.section_title"| translate }}
{% endblock %}
{% block form %}
{% macro TOEditLink(screen=1) %}
{% macro TOEditLink(screen=1, anchor=None) %}
{% if task_order %}
{{ EditLink(url_for("task_orders.new", screen=screen, task_order_id=task_order.id)) }}
{{ EditLink(url_for("task_orders.new", screen=screen, task_order_id=task_order.id, _anchor=anchor)) }}
{% else %}
{{ EditLink(url_for("task_orders.new", screen=screen)) }}
{{ EditLink(url_for("task_orders.new", screen=screen, _anchor=anchor)) }}
{% endif %}
{% endmacro %}
<section>
<h3>Scope (Statement of Work) {{ TOEditLink() }}</h3>
<p>
{{ task_order.scope or RequiredLabel() }}
</p>
{% if task_order.defense_component %}
{% set defense_component_description = task_order.defense_component | normalizeOrder %}
{% endif %}
<div class="row">
<div class="col col--grow">
<h3>Period of Performance length {{ TOEditLink(screen=2) }}</h3>
{{ task_order.performance_length or RequiredLabel() }}
</div>
{% if task_order.app_migration %}
{% set app_migration_description = "forms.task_order.app_migration.{}".format(task_order.app_migration) | translate | removeHtml %}
{% endif %}
<div class="col col--grow">
<h3>Total funding requested {{ TOEditLink(screen=2) }}</h3>
{{ task_order.budget }}
</div>
{% if task_order.native_apps %}
{% set native_apps_description = "task_orders.new.review.{}_native".format(task_order.native_apps) | translate %}
{% endif %}
{% if task_order.team_experience %}
{% set team_experience_description = "forms.task_order.team_experience.{}".format(task_order.team_experience) | translate %}
{% endif %}
<h3 class="subheading">{{ "task_orders.new.review.app_info"| translate }} {{ TOEditLink(screen=1) }}</h3>
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.portfolio"| translate }}</h4>
<p>{{ task_order.portfolio_name or RequiredLabel() }}</p>
</div>
</section>
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.dod"| translate }}</h4>
<p>{{ defense_component_description or RequiredLabel() }}</p>
</div>
</div>
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.scope"| translate }}</h4>
<p>
{{ task_order.scope or RequiredLabel() }}
</p>
<hr>
<section>
<h2>Generated Documents</h2>
<h3 class="subheading">{{ "task_orders.new.review.reporting"| translate }} {{ TOEditLink(screen=1, anchor="reporting") }}</h3>
<ul class="usa-unstyled-list">
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.migration"| translate }}</h4>
<p>{{ app_migration_description or RequiredLabel() }}</p>
</div>
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.native_apps"| translate }}</h4>
<p>{{ native_apps_description or RequiredLabel() }}</p>
</div>
</div>
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.complexity"| translate }}</h4>
{% if task_order.complexity %}
<ul class="checklist">
{% for item in task_order.complexity %}
<li>
<a href="#" download>
{{ Icon('download') }}
Cover Sheet
</a>
</li>
<li>
<a href="#" download>
{{ Icon('download') }}
Market Research
</a>
</li
>
{% if task_order %}
<li>
<a href="{{ url_for('task_orders.download_summary', task_order_id=task_order.id) }}" download>
{{ Icon('download') }}
Task Order Draft
</a>
</li>
{% endif %}
<li>
<a href="#" download>
{{ Icon('download') }}
DD 254
</a>
{{ Icon('ok', classes='icon--gray icon--medium') }}{{ "forms.task_order.complexity.{}".format(item) | translate }}{% if item == 'other' %}: {{ task_order.complexity_other }}{% endif %}
</li>
{% endfor %}
</ul>
</section>
{% else %}
<p>{{ RequiredLabel() }}</p>
{% endif %}
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.team"| translate }}</h4>
{% if task_order.dev_team %}
<ul class="checklist">
{% for item in task_order.dev_team %}
<li>
{% if item == 'other' %}
{{ Icon('ok', classes='icon--gray icon--medium') }}Other: {{ task_order.dev_team_other }}
{% else %}
{{ Icon('ok', classes='icon--gray icon--medium') }}{{ "forms.task_order.dev_team.{}".format(item) | translate }}
{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
<p>{{ RequiredLabel() }}</p>
{% endif %}
</div>
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.experience"| translate }}</h4>
<p>{{ team_experience_description or RequiredLabel() }}</p>
</div>
</div>
<hr>
<section>
<h2>Invite Signatories/Collaborators</h2>
<h3 class="subheading">{{ "task_orders.new.review.funding"| translate }} {{ TOEditLink(screen=2) }}</h3>
<div class="form-row">
<div class="form-col">
<div class="usa-input">
<fieldset class="usa-input__choices">
<legend>Financial Oversight</legend>
<p>
{% if task_order.ko_first_name %}
{{ task_order.ko_first_name }}
{{ task_order.ko_last_name }}
{% else %}
{{ RequiredLabel() }}
{% endif %}
(Contracting Officer)
</p>
<p>
{% if task_order.ko_first_name %}
{{ task_order.cor_first_name }}
{{ task_order.cor_last_name }}
{% else %}
{{ RequiredLabel() }}
{% endif %}
(Contracting Officer Representative)
</p>
</fieldset>
</div>
</div>
<div class="form-col">
<div class="usa-input">
<fieldset class="usa-input__choices">
<legend>Invite?</legend>
</fieldset>
</div>
</div>
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.performance_period"| translate }}</h4>
{{ task_order.performance_length | translateDuration or RequiredLabel() }}
<p><a href="#" class='icon-link icon-link--left' download>{{ Icon('download') }} {{ "task_orders.new.review.usage_est_link"| translate }}</a></p>
</div>
<div class="form-row">
<div class="form-col">
<div class="usa-input">
<fieldset class="usa-input__choices">
<legend>Security Officer</legend>
<p>
{% if task_order.so_first_name %}
{{ task_order.so_first_name }}
{{ task_order.so_last_name }}
{% else %}
{{ RequiredLabel() }}
{% endif %}
(Security Officer)
</p>
</fieldset>
</div>
</div>
<div class="form-col">
<div class="usa-input">
</div>
</div>
<div class="col col--grow">
<table class="funding-summary__table">
<tbody>
<tr>
<td><h4>{{ "task_orders.new.review.to_value"| translate }}</h4></td>
<td class="table-cell--align-right">{{ '${:,.2f}'.format(task_order.budget) }}</td>
</tr>
<tr>
<td><h4 class='task-order-form__heading funding-summary__td'>{{ "task_orders.new.review.clin_1"| translate }}</h4></td>
<td class="table-cell--align-right">{{ '${:,.2f}'.format(task_order.clin_01) }}</td>
</tr>
<tr>
<td><h4 class="task-order-form__heading funding-summary__td{% if not config.CLASSIFIED %} inactive{% endif %}">
{{ "task_orders.new.review.clin_2"| translate }}
{% if not config.CLASSIFIED %}
<div>{{ "task_orders.new.review.classified_inactive"| translate }}</div>
{% endif %}
</h4></td>
<td class="table-cell--align-right">
{% if config.CLASSIFIED %}
{{ '${:,.2f}'.format(task_order.clin_02) }}
{% endif %}
</td>
</tr>
<tr>
<td><h4 class='task-order-form__heading funding-summary__td'>{{ "task_orders.new.review.clin_3"| translate }}</h4></td>
<td class="table-cell--align-right">{{ '${:,.2f}'.format(task_order.clin_03) }}</td>
</tr>
<tr>
<td><h4 class="task-order-form__heading funding-summary__td{% if not config.CLASSIFIED %} inactive{% endif %}">
{{ "task_orders.new.review.clin_4"| translate }}
{% if not config.CLASSIFIED %}
<div>{{ "task_orders.new.review.classified_inactive"| translate }}</div>
{% endif %}
</h4></td>
<td class="table-cell--align-right">
{% if config.CLASSIFIED %}
{{ '${:,.2f}'.format(task_order.clin_04) }}
{% endif %}
</td>
<tr>
</tbody>
</table>
</div>
</section>
</div>
<hr>
<h3 class="subheading">{{ "task_orders.new.review.oversight"| translate }} {{ TOEditLink(screen=3) }}</h3>
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.ko"| translate }}</h4>
{{ task_order.ko_first_name }} {{ task_order.ko_last_name }}<br>
{{ task_order.ko_email }}<br>
{{ task_order.ko_phone_number | usPhone }}<br>
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.ko_dod_id}}<br>
{% if task_order.ko_invite %}
{{ Icon('ok', classes='icon--green') }} <span class="task-order-invite-message sent">{{ "task_orders.new.review.invited"| translate }}</<span>
{% else %}
{{ Icon('alert', classes='icon--red') }} <span class="task-order-invite-message not-sent">{{ "task_orders.new.review.not_invited"| translate }}</span>
{% endif %}
</div>
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.cor"| translate }}</h4>
{{ task_order.cor_first_name }} {{ task_order.cor_last_name }}<br>
{{ task_order.cor_email }}<br>
{{ task_order.cor_phone_number | usPhone }}<br>
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.cor_dod_id}}<br>
{% if task_order.cor_invite %}
{{ Icon('ok', classes='icon--green') }} <span class="task-order-invite-message sent">{{ "task_orders.new.review.invited"| translate }}</<span>
{% else %}
{{ Icon('alert', classes='icon--red') }} <span class="task-order-invite-message not-sent">{{ "task_orders.new.review.not_invited"| translate }}</span>
{% endif %}
</div>
</div>
<div class="row">
<div class="col col--grow">
<h4 class='task-order-form__heading'>{{ "task_orders.new.review.so"| translate }}</h4>
{{ task_order.so_first_name }} {{ task_order.so_last_name }}<br>
{{ task_order.so_email }}<br>
{{ task_order.so_phone_number | usPhone }}<br>
{{ "task_orders.new.review.dod_id"| translate }} {{ task_order.so_dod_id}}<br>
{% if task_order.so_invite %}
{{ Icon('ok', classes='icon--green') }} <span class="task-order-invite-message sent">{{ "task_orders.new.review.invited"| translate }}</<span>
{% else %}
{{ Icon('alert', classes='icon--red') }} <span class="task-order-invite-message not-sent">{{ "task_orders.new.review.not_invited"| translate }}</span>
{% endif %}
</div>
</div>
{% endblock %}
{% block next %}
<div class='action-group'>
<input type='submit' class='usa-button usa-button-primary' value='Send Invitations' />
<input type='submit' class='usa-button usa-button-primary' value='Done' />
</div>
{% endblock %}