Update TO funding section

This commit is contained in:
leigh-mil 2019-01-10 08:21:45 -05:00
parent b00210a92c
commit 922ec56134
6 changed files with 104 additions and 57 deletions

View File

@ -24,7 +24,9 @@ class TaskOrders(object):
"team_experience",
],
"funding": [
"performance_length",
"start_date",
"csp_cost_estimate",
"end_date",
"clin_01",
"clin_02",

View File

@ -213,3 +213,30 @@ TEAM_EXPERIENCE = [
"Built or migrated many applications, or consulted on several such projects",
),
]
PERIOD_OF_PERFORMANCE_LENGTH = [
("1_month", "1 Month"),
("2_months", "2 Months"),
("3_months", "3 Months"),
("4_months", "4 Months"),
("5_months", "5 Months"),
("6_months", "6 Months"),
("7_months", "7 Months"),
("8_months", "8 Months"),
("9_months", "9 Months"),
("10_months", "10 Months"),
("11_months", "11 Months"),
("1_year", "1 Year"),
("1_year_1_month", "1 Year, 1 Month"),
("1_year_2_months", "1 Year, 2 Months"),
("1_year_3_months", "1 Year, 3 Months"),
("1_year_4_months", "1 Year, 4 Months"),
("1_year_5_months", "1 Year, 5 Months"),
("1_year_6_months", "1 Year, 6 Months"),
("1_year_7_months", "1 Year, 7 Months"),
("1_hyear_8_months", "1 Year, 8 Months"),
("1_year_9_months", "1 Year, 9 Months"),
("1_year_10_months", "1 Year, 10 Months"),
("1_year_11_months", "1 Year, 11 Months"),
("2_years", "2 Years"),
]

View File

@ -6,6 +6,7 @@ from wtforms.fields import (
SelectMultipleField,
StringField,
TextAreaField,
FileField,
)
from wtforms.fields.html5 import DateField
from wtforms.widgets import ListWidget, CheckboxInput
@ -20,6 +21,7 @@ from .data import (
PROJECT_COMPLEXITY,
DEV_TEAM,
TEAM_EXPERIENCE,
PERIOD_OF_PERFORMANCE_LENGTH,
)
from atst.utils.localization import translate
@ -74,17 +76,29 @@ class AppInfoForm(CacheableForm):
class FundingForm(CacheableForm):
start_date = DateField("Start Date", format="%m/%d/%Y")
end_date = DateField("End Date", format="%m/%d/%Y")
clin_01 = IntegerField("CLIN 01 : Unclassified")
clin_02 = IntegerField("CLIN 02: Classified")
clin_03 = IntegerField("CLIN 03: Unclassified")
clin_04 = IntegerField("CLIN 04: Classified")
performance_length = SelectField(
translate("forms.task_order.performance_length_label"),
choices=PERIOD_OF_PERFORMANCE_LENGTH,
)
start_date = DateField(
translate("forms.task_order.start_date_label"), format="%m/%d/%Y"
)
end_date = DateField(
translate("forms.task_order.end_date_label"), format="%m/%d/%Y"
)
csp_cost_estimate = FileField(
translate("forms.task_order.csp_cost_est_label"),
description=translate("forms.task_order.csp_cost_est_description"),
)
clin_01 = IntegerField(translate("forms.task_order.clin_01_label"))
clin_02 = IntegerField(translate("forms.task_order.clin_02_label"))
clin_03 = IntegerField(translate("forms.task_order.clin_03_label"))
clin_04 = IntegerField(translate("forms.task_order.clin_04_label"))
class UnclassifiedFundingForm(FundingForm):
clin_02 = IntegerField("CLIN 02: Classified (available soon)")
clin_04 = IntegerField("CLIN 04: Classified (available soon)")
clin_02 = IntegerField(translate("forms.task_order.unclassified_clin_02_label"))
clin_04 = IntegerField(translate("forms.task_order.unclassified_clin_04_label")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

View File

@ -69,6 +69,7 @@
type='text'
{% if disabled %}
disabled="disabled"
readonly="readonly"
{% endif %}
ref='input'
placeholder='{{ placeholder }}'>

View File

@ -5,7 +5,7 @@
{% from "components/date_input.html" import DateInput %}
{% block heading %}
Funding
{{ "task_orders.new.funding.section_title" | translate }}
{% endblock %}
{% block form %}
@ -13,65 +13,42 @@
<funding inline-template v-bind:initial-data='{{ form.data|tojson }}'>
<div>
<!-- Get Funding Section -->
<h3>Period of Performance</h3>
<h3>{{ "task_orders.new.funding.performance_period_title" | translate }}</h3>
<p>Choose the dates your task order will cover.</p>
{{ "task_orders.new.funding.performance_period_paragraph" | translate | safe }}
<p>
Because your funds will be lost if you dont use them, we strongly recommend
submitting small, short-duration task orders, usually a three month period.
Well notify you when your period of performance is nearing the end so you can
request your next set of funds with a new task order.
</p>
{{ DateInput(form.start_date, placeholder='MM / DD / YYYY', validation='date') }}
{{ DateInput(form.end_date, placeholder='MM / DD / YYYY', validation='date') }}
{{ OptionsInput(form.performance_length) }}
<hr>
<h3>Cloud Usage Estimate</h3>
<h3>{{ "task_orders.new.funding.estimate_usage_title" | translate }}</h3>
<p>
Calculate how much your cloud usage will cost. A technical representative
should help you complete this calculation.
<a href="{{ url_for('atst.jedi_csp_calculator') }}">
Cloud Service Provider's estimate calculator
</a>
</p>
<h4>Upload a copy of your CSP Cost Estimate Research</h4>
{{ "task_orders.new.funding.estimate_usage_paragraph" | translate | safe }}
<p>
Upload your anticipated cloud usage from the CSP tool linked above. PDFs and
screengrabs of the tool are sufficient.
</p>
<p>
This is only an estimation tool to help you make and informed evaluation of
what you expect to use. While you're tied to the dollar amount you specify in
your task order, you're not obligated by the resources you indicate in the
calculator.
</p>
<input type="file">
<div class="usa-input">
{{ form.csp_cost_estimate.label }}
{{ form.csp_cost_estimate.description }}
{{ form.csp_cost_estimate }}
</div>
<hr>
<h3>Cloud Usage Calculations</h3>
<h3>{{ "task_orders.new.funding.cloud_calculations_title" | translate }}</h3>
<p>
Enter the results of your cloud usage calculations. These will correspond with
your task order's period of performance.
</p>
<h4>Cloud Offerings</h4>
<p>
Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) offerings
{{ "task_orders.new.funding.cloud_calculations_paragraph" | translate }}
</p>
{{ TextInput(form.clin_01, validation='dollars') }}
<h4>{{ "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>Cloud Support and Assistance</h4>
<h4>{{ "task_orders.new.funding.support_assistance_title" | translate }}</h4>
<p>
Technical guidance from the cloud service provider, including architecture,
configuration of IaaS and PaaS, integration, troubleshooting assistance, and
other services.
{{ "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.') }}
{{ 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)) }}
</div>
</funding>
@ -81,13 +58,10 @@
{% block next %}
<div class="row">
<div class="col col--grow">
<p>Total Task Order Value:<br><span id="to-target"></span></p>
<p>{{ "task_orders.new.funding.total" | translate }}<br><span id="to-target"></span></p>
</div>
<div class="col col--grow">
{{ super() }}
</div>
</div>
{% endblock %}

View File

@ -181,6 +181,17 @@ forms:
dev_team_other_label: Development Team Other
team_experience_label: Team Experience
team_experience_description: How much experience does your team have with development in the cloud?
performance_length_label: Period of Performance length
start_date_label: Start Date
end_date_label: End Date
csp_cost_est_label: Upload a copy of your CSP Cost Estimate Research
csp_cost_est_description: Upload a PDF or screenshot fo your usage estimate from the calculator.
clin_01_label: 'CLIN 01 : Unclassifie'd
clin_02_label: 'CLIN 02: Classified'
clin_03_label: 'CLIN 03: Unclassified'
clin_04_label: 'CLIN 04: Classified'
unclassified_clin_02_label: 'CLIN 02: Classified (available soon)'
unclassified_clin_04_label: 'CLIN 04: Classified (available soon)'
validators:
is_number_message: Please enter a valid number.
list_item_required_message: Please provide at least one.
@ -334,6 +345,24 @@ task_orders:
team_title: About your team
market_research_title: Market Research
market_research_paragraph: 'The JEDI Cloud Computing Program Office (CCPO) has completed the market research requirements for all related task orders. The Department of Defense CIO has approved this research.<br /><a href="#">View JEDI Market Research Memo</a>'
funding:
section_title: Funding
performance_period_title: Period of Performance
performance_period_paragraph: |
<p>Choose the dates your task order will cover.</p>
<p>Because your funds will be lost if you dont use them, we strongly recommend submitting small, short-duration task orders, usually a three month period. Well notify you when your period of performance is nearing the end so you can request your next set of funds with a new task order.</p>
estimate_usage_title: Estimate Your Cloud Usage
estimate_usage_paragraph: |
<p>Calculate how much your cloud usage will cost. A technical representative should help you complete this calculation. These calculatiosnd will become your CLINs.</p>
<p><a class="icon-link" href="{{ url_for('atst.jedi_csp_calculator') }}">**link image** Cloud Service Provider's estimate calculator</a></p>
<p>This is only an estimation tool to help you make an informed evaluation of what you expect to use. While you're tied to the dollar amount you specify in your task order, you're not obligated by the resources you indicate in the calculator.</p>
cloud_calculations_title: Cloud Usage Calculations
cloud_calculations_paragraph: Enter the results of your cloud usage calculations.
cloud_offerings_title: Cloud Offerings
cloud_offerings_paragraph: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) offerings
support_assistance_title: Cloud Support and Assistance
support_assistance_paragraph: Technical guidance from the cloud service provider, including architecture, configuration of IaaS and PaaS, integration, troubleshooting assistance, and other services.
total: 'Total Task Order Value:'
testing:
example_string: Hello World
example_with_variables: 'Hello, {name}!'