Update TO funding section
This commit is contained in:
parent
b00210a92c
commit
922ec56134
@ -24,7 +24,9 @@ class TaskOrders(object):
|
|||||||
"team_experience",
|
"team_experience",
|
||||||
],
|
],
|
||||||
"funding": [
|
"funding": [
|
||||||
|
"performance_length",
|
||||||
"start_date",
|
"start_date",
|
||||||
|
"csp_cost_estimate",
|
||||||
"end_date",
|
"end_date",
|
||||||
"clin_01",
|
"clin_01",
|
||||||
"clin_02",
|
"clin_02",
|
||||||
|
@ -213,3 +213,30 @@ TEAM_EXPERIENCE = [
|
|||||||
"Built or migrated many applications, or consulted on several such projects",
|
"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"),
|
||||||
|
]
|
||||||
|
@ -6,6 +6,7 @@ from wtforms.fields import (
|
|||||||
SelectMultipleField,
|
SelectMultipleField,
|
||||||
StringField,
|
StringField,
|
||||||
TextAreaField,
|
TextAreaField,
|
||||||
|
FileField,
|
||||||
)
|
)
|
||||||
from wtforms.fields.html5 import DateField
|
from wtforms.fields.html5 import DateField
|
||||||
from wtforms.widgets import ListWidget, CheckboxInput
|
from wtforms.widgets import ListWidget, CheckboxInput
|
||||||
@ -20,6 +21,7 @@ from .data import (
|
|||||||
PROJECT_COMPLEXITY,
|
PROJECT_COMPLEXITY,
|
||||||
DEV_TEAM,
|
DEV_TEAM,
|
||||||
TEAM_EXPERIENCE,
|
TEAM_EXPERIENCE,
|
||||||
|
PERIOD_OF_PERFORMANCE_LENGTH,
|
||||||
)
|
)
|
||||||
from atst.utils.localization import translate
|
from atst.utils.localization import translate
|
||||||
|
|
||||||
@ -74,17 +76,29 @@ class AppInfoForm(CacheableForm):
|
|||||||
|
|
||||||
|
|
||||||
class FundingForm(CacheableForm):
|
class FundingForm(CacheableForm):
|
||||||
start_date = DateField("Start Date", format="%m/%d/%Y")
|
performance_length = SelectField(
|
||||||
end_date = DateField("End Date", format="%m/%d/%Y")
|
translate("forms.task_order.performance_length_label"),
|
||||||
clin_01 = IntegerField("CLIN 01 : Unclassified")
|
choices=PERIOD_OF_PERFORMANCE_LENGTH,
|
||||||
clin_02 = IntegerField("CLIN 02: Classified")
|
)
|
||||||
clin_03 = IntegerField("CLIN 03: Unclassified")
|
start_date = DateField(
|
||||||
clin_04 = IntegerField("CLIN 04: Classified")
|
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):
|
class UnclassifiedFundingForm(FundingForm):
|
||||||
clin_02 = IntegerField("CLIN 02: Classified (available soon)")
|
clin_02 = IntegerField(translate("forms.task_order.unclassified_clin_02_label"))
|
||||||
clin_04 = IntegerField("CLIN 04: Classified (available soon)")
|
clin_04 = IntegerField(translate("forms.task_order.unclassified_clin_04_label")
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
@ -69,6 +69,7 @@
|
|||||||
type='text'
|
type='text'
|
||||||
{% if disabled %}
|
{% if disabled %}
|
||||||
disabled="disabled"
|
disabled="disabled"
|
||||||
|
readonly="readonly"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ref='input'
|
ref='input'
|
||||||
placeholder='{{ placeholder }}'>
|
placeholder='{{ placeholder }}'>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
{% from "components/date_input.html" import DateInput %}
|
{% from "components/date_input.html" import DateInput %}
|
||||||
|
|
||||||
{% block heading %}
|
{% block heading %}
|
||||||
Funding
|
{{ "task_orders.new.funding.section_title" | translate }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block form %}
|
{% block form %}
|
||||||
@ -13,65 +13,42 @@
|
|||||||
<funding inline-template v-bind:initial-data='{{ form.data|tojson }}'>
|
<funding inline-template v-bind:initial-data='{{ form.data|tojson }}'>
|
||||||
<div>
|
<div>
|
||||||
<!-- Get Funding Section -->
|
<!-- 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>
|
{{ OptionsInput(form.performance_length) }}
|
||||||
Because your funds will be lost if you don’t use them, we strongly recommend
|
|
||||||
submitting small, short-duration task orders, usually a three month period.
|
|
||||||
We’ll 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') }}
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<h3>Cloud Usage Estimate</h3>
|
<h3>{{ "task_orders.new.funding.estimate_usage_title" | translate }}</h3>
|
||||||
|
|
||||||
<p>
|
{{ "task_orders.new.funding.estimate_usage_paragraph" | translate | safe }}
|
||||||
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>
|
|
||||||
|
|
||||||
<p>
|
<div class="usa-input">
|
||||||
Upload your anticipated cloud usage from the CSP tool linked above. PDFs and
|
{{ form.csp_cost_estimate.label }}
|
||||||
screengrabs of the tool are sufficient.
|
{{ form.csp_cost_estimate.description }}
|
||||||
</p>
|
{{ form.csp_cost_estimate }}
|
||||||
<p>
|
</div>
|
||||||
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">
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<h3>Cloud Usage Calculations</h3>
|
<h3>{{ "task_orders.new.funding.cloud_calculations_title" | translate }}</h3>
|
||||||
<p>
|
<p>
|
||||||
Enter the results of your cloud usage calculations. These will correspond with
|
{{ "task_orders.new.funding.cloud_calculations_paragraph" | translate }}
|
||||||
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
|
|
||||||
</p>
|
</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)) }}
|
{{ 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>
|
<p>
|
||||||
Technical guidance from the cloud service provider, including architecture,
|
{{ "task_orders.new.funding.support_assistance_paragraph" | translate }}
|
||||||
configuration of IaaS and PaaS, integration, troubleshooting assistance, and
|
|
||||||
other services.
|
|
||||||
</p>
|
</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)) }}
|
{{ 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>
|
</div>
|
||||||
</funding>
|
</funding>
|
||||||
@ -81,13 +58,10 @@
|
|||||||
{% block next %}
|
{% block next %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col col--grow">
|
<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>
|
||||||
<div class="col col--grow">
|
<div class="col col--grow">
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,6 +181,17 @@ forms:
|
|||||||
dev_team_other_label: Development Team Other
|
dev_team_other_label: Development Team Other
|
||||||
team_experience_label: Team Experience
|
team_experience_label: Team Experience
|
||||||
team_experience_description: How much experience does your team have with development in the cloud?
|
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:
|
validators:
|
||||||
is_number_message: Please enter a valid number.
|
is_number_message: Please enter a valid number.
|
||||||
list_item_required_message: Please provide at least one.
|
list_item_required_message: Please provide at least one.
|
||||||
@ -334,6 +345,24 @@ task_orders:
|
|||||||
team_title: About your team
|
team_title: About your team
|
||||||
market_research_title: Market Research
|
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>'
|
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 don’t use them, we strongly recommend submitting small, short-duration task orders, usually a three month period. We’ll 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:
|
testing:
|
||||||
example_string: Hello World
|
example_string: Hello World
|
||||||
example_with_variables: 'Hello, {name}!'
|
example_with_variables: 'Hello, {name}!'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user