multistep task order workflow
This commit is contained in:
49
templates/task_orders/_new.html
Normal file
49
templates/task_orders/_new.html
Normal file
@@ -0,0 +1,49 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="col">
|
||||
|
||||
{% include 'task_orders/new/menu.html' %}
|
||||
|
||||
{% include "fragments/flash.html" %}
|
||||
|
||||
{% block form_action %}
|
||||
{% if task_order_id %}
|
||||
<form method='POST' action="{{ url_for('task_orders.new', screen=current, task_order_id=task_order_id) }}" autocomplete="off">
|
||||
{% else %}
|
||||
<form method='POST' action="{{ url_for('task_orders.update', screen=current) }}" autocomplete="off">
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
<div class="panel">
|
||||
|
||||
<div class="panel__heading">
|
||||
<div class="subtitle h2">Task Order Builder</div>
|
||||
<h1>{% block heading %}{% endblock %}</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel__content">
|
||||
|
||||
{{ form.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='Save & Continue' />
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
@@ -18,43 +18,26 @@
|
||||
</div>
|
||||
|
||||
<div class="panel__content">
|
||||
{{ TextInput(form.scope, paragraph=True) }}
|
||||
{{ OptionsInput(form.defense_component) }}
|
||||
{{ OptionsInput(form.app_migration) }}
|
||||
{{ OptionsInput(form.native_apps) }}
|
||||
{{ OptionsInput(form.complexity) }}
|
||||
{{ TextInput(form.complexity_other) }}
|
||||
{{ OptionsInput(form.dev_team) }}
|
||||
{{ TextInput(form.dev_team_other) }}
|
||||
{{ OptionsInput(form.team_experience) }}
|
||||
{{ DateInput(form.start_date, placeholder='MM / DD / YYYY', validation='date') }}
|
||||
{{ DateInput(form.end_date, placeholder='MM / DD / YYYY', validation='date') }}
|
||||
{{ TextInput(form.clin_01, validation='dollars') }}
|
||||
{{ TextInput(form.clin_02, validation='dollars') }}
|
||||
{{ TextInput(form.clin_03, validation='dollars') }}
|
||||
{{ TextInput(form.clin_04, validation='dollars') }}
|
||||
<h3>Contracting Officer (KO) Information</h3>
|
||||
{{ TextInput(form.ko_first_name) }}
|
||||
{{ TextInput(form.ko_last_name) }}
|
||||
{{ TextInput(form.ko_email) }}
|
||||
{{ TextInput(form.ko_dod_id) }}
|
||||
<h3>Contractive Officer Representative (COR) Information</h3>
|
||||
{{ TextInput(form.cor_first_name) }}
|
||||
{{ TextInput(form.cor_last_name) }}
|
||||
{{ TextInput(form.cor_email) }}
|
||||
{{ TextInput(form.cor_dod_id) }}
|
||||
<h3>Security Officer Information</h3>
|
||||
{{ TextInput(form.so_first_name) }}
|
||||
{{ TextInput(form.so_last_name) }}
|
||||
{{ TextInput(form.so_email) }}
|
||||
{{ TextInput(form.so_dod_id) }}
|
||||
{{ TextInput(form.number) }}
|
||||
{{ TextInput(form.loa) }}
|
||||
</div>
|
||||
</div>
|
||||
<p>DoD Contract Security Classification Specification</p>
|
||||
|
||||
<div class='action-group'>
|
||||
<button type="submit" class="usa-button usa-button-big usa-button-primary" tabindex="0">Save</button>
|
||||
<!-- Download & Next Steps Section -->
|
||||
|
||||
<div class='action-group'>
|
||||
<button type="submit" class="usa-button usa-button-big usa-button-primary" tabindex="0">Submit for Approval</button>
|
||||
</div>
|
||||
|
||||
<p>Download your Task Order Packet.</p>
|
||||
|
||||
<!-- Security Officer Approval -->
|
||||
|
||||
<!-- KO Approval -->
|
||||
{{ TextInput(form.number) }}
|
||||
{{ TextInput(form.number_confirm) }}
|
||||
{{ TextInput(form.loa) }}
|
||||
<p>Add another LOA</p>
|
||||
|
||||
<p>I certify that the task order information above is accurate and that funding has been allocated to the above task order.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
41
templates/task_orders/new/app_info.html
Normal file
41
templates/task_orders/new/app_info.html
Normal file
@@ -0,0 +1,41 @@
|
||||
{% extends 'task_orders/_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 %}
|
||||
What You're Building
|
||||
{% endblock %}
|
||||
|
||||
{% block form %}
|
||||
|
||||
{% include "fragments/flash.html" %}
|
||||
|
||||
<h3>Basic Information</h3>
|
||||
{{ TextInput(form.portfolio_name) }}
|
||||
{{ TextInput(form.scope, paragraph=True) }}
|
||||
{{ OptionsInput(form.defense_component) }}
|
||||
|
||||
<hr>
|
||||
|
||||
<h3>About Your Project</h3>
|
||||
{{ OptionsInput(form.app_migration) }}
|
||||
{{ OptionsInput(form.native_apps) }}
|
||||
{{ OptionsInput(form.complexity) }}
|
||||
{{ TextInput(form.complexity_other) }}
|
||||
|
||||
<hr>
|
||||
|
||||
<h3>About Your Team</h3>
|
||||
{{ OptionsInput(form.dev_team) }}
|
||||
{{ TextInput(form.dev_team_other) }}
|
||||
{{ OptionsInput(form.team_experience) }}
|
||||
|
||||
<hr>
|
||||
|
||||
<h3>Market Research</h3>
|
||||
<p>View JEDI Market Research Memo</p>
|
||||
|
||||
|
||||
{% endblock %}
|
29
templates/task_orders/new/funding.html
Normal file
29
templates/task_orders/new/funding.html
Normal file
@@ -0,0 +1,29 @@
|
||||
{% extends 'task_orders/_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 %}
|
||||
Funding
|
||||
{% endblock %}
|
||||
|
||||
{% block form %}
|
||||
|
||||
{% include "fragments/flash.html" %}
|
||||
|
||||
<!-- Get Funding Section -->
|
||||
{{ DateInput(form.start_date, placeholder='MM / DD / YYYY', validation='date') }}
|
||||
{{ DateInput(form.end_date, placeholder='MM / DD / YYYY', validation='date') }}
|
||||
<p>Cloud Usage Estimate</p>
|
||||
<p>Upload a copy of your CSP Cost Estimate Research</p>
|
||||
|
||||
<h3>Cloud Usage Calculations</h3>
|
||||
{{ TextInput(form.clin_01, validation='dollars') }}
|
||||
{{ TextInput(form.clin_02, validation='dollars') }}
|
||||
{{ TextInput(form.clin_03, validation='dollars', tooltip='The cloud support and assistance packages cannot be used as a primary development resource.') }}
|
||||
{{ TextInput(form.clin_04, validation='dollars', tooltip='The cloud support and assistance packages cannot be used as a primary development resource.') }}
|
||||
<p>Total Task Order Value</p>
|
||||
|
||||
|
||||
{% endblock %}
|
21
templates/task_orders/new/menu.html
Normal file
21
templates/task_orders/new/menu.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<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('task_orders.new', screen=loop.index, task_order_id=task_order_id) }}"
|
||||
{% if g.matchesPath(url_for('task_orders.new', screen=loop.index + 1)) %}class="active"{% endif %}
|
||||
>
|
||||
{{ s['title'] }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
32
templates/task_orders/new/oversight.html
Normal file
32
templates/task_orders/new/oversight.html
Normal file
@@ -0,0 +1,32 @@
|
||||
{% extends 'task_orders/_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 %}
|
||||
Funding
|
||||
{% endblock %}
|
||||
|
||||
{% block form %}
|
||||
|
||||
{% include "fragments/flash.html" %}
|
||||
|
||||
<!-- Oversight Section -->
|
||||
<h3>Contracting Officer (KO) Information</h3>
|
||||
{{ TextInput(form.ko_first_name) }}
|
||||
{{ TextInput(form.ko_last_name) }}
|
||||
{{ TextInput(form.ko_email) }}
|
||||
{{ TextInput(form.ko_dod_id) }}
|
||||
<h3>Contractive Officer Representative (COR) Information</h3>
|
||||
{{ TextInput(form.cor_first_name) }}
|
||||
{{ TextInput(form.cor_last_name) }}
|
||||
{{ TextInput(form.cor_email) }}
|
||||
{{ TextInput(form.cor_dod_id) }}
|
||||
<h3>Security Officer Information</h3>
|
||||
{{ TextInput(form.so_first_name) }}
|
||||
{{ TextInput(form.so_last_name) }}
|
||||
{{ TextInput(form.so_email) }}
|
||||
{{ TextInput(form.so_dod_id) }}
|
||||
|
||||
{% endblock %}
|
Reference in New Issue
Block a user