Merge pull request #1336 from dod-ccpo/copy-updates

Copy updates
This commit is contained in:
leigh-mil 2020-01-22 15:18:27 -05:00 committed by GitHub
commit 41c8a5d187
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 97 additions and 79 deletions

View File

@ -28,6 +28,7 @@ class PortfolioForm(BaseForm):
class PortfolioCreationForm(PortfolioForm): class PortfolioCreationForm(PortfolioForm):
defense_component = SelectMultipleField( defense_component = SelectMultipleField(
translate("forms.portfolio.defense_component.title"),
choices=SERVICE_BRANCHES, choices=SERVICE_BRANCHES,
widget=ListWidget(prefix_label=False), widget=ListWidget(prefix_label=False),
option_widget=CheckboxInput(), option_widget=CheckboxInput(),

View File

@ -509,11 +509,7 @@ def resend_invite(application_id, application_role_id):
token=new_invite.token, token=new_invite.token,
) )
flash( flash("application_invite_resent", email=new_invite.email)
"application_invite_resent",
user_name=new_invite.user_name,
application_name=app_role.application.name,
)
else: else:
flash( flash(
"application_invite_error", "application_invite_error",

View File

@ -65,7 +65,7 @@ def resend_invitation(portfolio_id, portfolio_token):
inviter_name=g.current_user.full_name, inviter_name=g.current_user.full_name,
token=invite.token, token=invite.token,
) )
flash("resend_portfolio_invitation", user_name=invite.user_name) flash("resend_portfolio_invitation", email=invite.email)
else: else:
user_name = f"{form['user_data']['first_name'].data} {form['user_data']['last_name'].data}" user_name = f"{form['user_data']['first_name'].data} {form['user_data']['last_name'].data}"
flash("resend_portfolio_invitation_error", user_name=user_name) flash("resend_portfolio_invitation_error", user_name=user_name)

View File

@ -29,7 +29,7 @@ MESSAGES = {
"category": "error", "category": "error",
}, },
"application_invite_resent": { "application_invite_resent": {
"title": "flash.application_invite.resent.title", "title": None,
"message": "flash.application_invite.resent.message", "message": "flash.application_invite.resent.message",
"category": "success", "category": "success",
}, },
@ -90,7 +90,7 @@ MESSAGES = {
}, },
"insufficient_funds": { "insufficient_funds": {
"title": "flash.task_order.insufficient_funds.title", "title": "flash.task_order.insufficient_funds.title",
"message": "", "message": None,
"category": "warning", "category": "warning",
}, },
"logged_out": { "logged_out": {
@ -109,8 +109,8 @@ MESSAGES = {
"category": "success", "category": "success",
}, },
"new_portfolio_member": { "new_portfolio_member": {
"title": "flash.success", "title": "flash.new_portfolio_member.title",
"message": "flash.new_portfolio_member", "message": "flash.new_portfolio_member.message",
"category": "success", "category": "success",
}, },
"portfolio_member_removed": { "portfolio_member_removed": {
@ -124,7 +124,7 @@ MESSAGES = {
"category": "success", "category": "success",
}, },
"resend_portfolio_invitation": { "resend_portfolio_invitation": {
"title": "flash.portfolio_invite.resent.title", "title": None,
"message": "flash.portfolio_invite.resent.message", "message": "flash.portfolio_invite.resent.message",
"category": "success", "category": "success",
}, },

View File

@ -101,7 +101,7 @@ export default {
if (!!this.clinNumber) { if (!!this.clinNumber) {
return `CLIN ${this.clinNumber}` return `CLIN ${this.clinNumber}`
} else { } else {
return `CLIN` return `New CLIN`
} }
}, },
percentObligated: function() { percentObligated: function() {

View File

@ -84,7 +84,7 @@
{{ TextInput(edit_form.name, validation='requiredField', optional=False) }} {{ TextInput(edit_form.name, validation='requiredField', optional=False) }}
{{ {{
SaveButton( SaveButton(
text=("common.save" | translate) text=("common.save_changes" | translate)
) )
}} }}
</form> </form>

View File

@ -21,7 +21,7 @@
{{ sub_form.environment_name.data }} {{ sub_form.environment_name.data }}
</div> </div>
<div class="usa-input__help"> <div class="usa-input__help">
{{ role }} {{ "portfolios.applications.members.roles.{}".format(role) | translate }}
</div> </div>
</div> </div>
<div class="form-col form-col--third"> <div class="form-col form-col--third">
@ -124,6 +124,6 @@
{{ TextInput(member_form.email, validation='email', optional=False) }} {{ TextInput(member_form.email, validation='email', optional=False) }}
{{ PhoneInput(member_form.phone_number, member_form.phone_ext)}} {{ PhoneInput(member_form.phone_number, member_form.phone_ext)}}
{{ TextInput(member_form.dod_id, validation='dodId', optional=False) }} {{ TextInput(member_form.dod_id, validation='dodId', optional=False) }}
<a href="#">How do I find the DoD ID?</a> <a href="#">{{ "forms.new_member.dod_help" | translate }}</a>
</div> </div>
{% endmacro %} {% endmacro %}

View File

@ -46,7 +46,7 @@
{{ member_form.SubmitStep( {{ member_form.SubmitStep(
name=modal_name, name=modal_name,
form=member_fields.PermsFields(form=member.form, member_role_id=member.role_id), form=member_fields.PermsFields(form=member.form, member_role_id=member.role_id),
submit_text="Update", submit_text="common.save_changes"|translate,
previous=False, previous=False,
modal=modal_name, modal=modal_name,
) }} ) }}
@ -179,7 +179,7 @@
member_form.SubmitStep( member_form.SubmitStep(
name=new_member_modal_name, name=new_member_modal_name,
form=member_fields.PermsFields(form=new_member_form, new=True), form=member_fields.PermsFields(form=new_member_form, new=True),
submit_text="portfolios.applications.members.form.add_member"|translate, submit_text="common.save_changes"|translate,
modal=new_member_modal_name, modal=new_member_modal_name,
) )
], ],

View File

@ -27,13 +27,13 @@
<span class="action-group-footer"> <span class="action-group-footer">
<a class="usa-button" href="{{ url_for('applications.settings', application_id=application_id) }}"> <a class="usa-button" href="{{ url_for('applications.settings', application_id=application_id) }}">
Return to Application Settings {{ "portfolios.applications.new.step_3_button_text" | translate }}
</a> </a>
<a class="usa-button usa-button-secondary" href="{{ url_for('applications.view_new_application_step_2', application_id=application.id) }}"> <a class="usa-button usa-button-secondary" href="{{ url_for('applications.view_new_application_step_2', application_id=application.id) }}">
Previous {{ "common.previous" | translate }}
</a> </a>
<a href="{{ url_for('applications.portfolio_applications', portfolio_id=portfolio.id) }}"> <a href="{{ url_for('applications.portfolio_applications', portfolio_id=portfolio.id) }}">
Cancel {{ "common.cancel" | translate }}
</a> </a>
</span> </span>

View File

@ -118,7 +118,7 @@
{{ CLINDollarAmount("obligated", funding_validation=True) }} {{ CLINDollarAmount("obligated", funding_validation=True) }}
{% endif %} {% endif %}
<div class="h5 clin-card__title">Percent Obligated</div> <div class="h5 clin-card__title">{{ "task_orders.form.step_3.percent_obligated" | translate }}</div>
<p id="percent-obligated" v-text='percentObligated'></p> <p id="percent-obligated" v-text='percentObligated'></p>
<hr> <hr>

View File

@ -17,15 +17,6 @@
{%- endif %} {%- endif %}
</p> </p>
</div> </div>
<div class="panel__body">
<hr>
<p>
{{ "common.lorem" | translate }}
</p>
<p>
<a href="#">More lorem</a>
</p>
</div>
</main> </main>
{% endblock %} {% endblock %}

View File

@ -32,6 +32,6 @@
{{ TextInput(member_form.email, validation='email', optional=False) }} {{ TextInput(member_form.email, validation='email', optional=False) }}
{{ PhoneInput(member_form.phone_number, member_form.phone_ext)}} {{ PhoneInput(member_form.phone_number, member_form.phone_ext)}}
{{ TextInput(member_form.dod_id, validation='dodId', optional=False) }} {{ TextInput(member_form.dod_id, validation='dodId', optional=False) }}
<a href="#">How do I find the DoD ID?</a> <a href="#">{{ "forms.new_member.dod_help" | translate }}</a>
</div> </div>
{% endmacro %} {% endmacro %}

View File

@ -12,9 +12,9 @@
{% include "fragments/flash.html" %} {% include "fragments/flash.html" %}
<div class='portfolio-header__name'> <div class='portfolio-header__name'>
<p>{{ "portfolios.header" | translate }}</p> <p>{{ "portfolios.header" | translate }}</p>
<h1>{{ "New Portfolio" }}</h1> <h1>{{ "portfolios.new.title" | translate }}</h1>
</div> </div>
{{ StickyCTA(text="Create New Portfolio") }} {{ StickyCTA(text="portfolios.new.cta_step_1"|translate, context=("portfolios.new.sticky_header_context"|translate({"step": "1"}) )) }}
<base-form inline-template> <base-form inline-template>
<div class="row"> <div class="row">
<form id="portfolio-create" class="col" action="{{ url_for('portfolios.create_portfolio') }}" method="POST"> <form id="portfolio-create" class="col" action="{{ url_for('portfolios.create_portfolio') }}" method="POST">
@ -39,9 +39,9 @@
</div> </div>
<div class='action-group-footer'> <div class='action-group-footer'>
{% block next_button %} {% block next_button %}
{{ SaveButton(text=('common.save' | translate), form="portfolio-create", element="input") }} {{ SaveButton(text=('portfolios.new.save' | translate), form="portfolio-create", element="input") }}
{% endblock %} {% endblock %}
<a href="{{ url_for('atst.home') }}"> <a class="usa-button usa-button-secondary" href="{{ url_for('atst.home') }}">
Cancel Cancel
</a> </a>
</form> </form>
@ -49,4 +49,3 @@
</base-form> </base-form>
</main> </main>
{% endblock %} {% endblock %}

View File

@ -5,15 +5,15 @@
<section class="row"> <section class="row">
<div class='col col--grow summary-item'> <div class='col col--grow summary-item'>
<h5 class="summary-item__header"> <h5 class="summary-item__header">
<span class="summary-item__header-text">Total Portfolio Value</span> <span class="summary-item__header-text">{{ "portfolios.reports.total_value.header" | translate }}</span>
{{Tooltip(("common.lorem" | translate), title="", classes="summary-item__header-icon")}} {{Tooltip(("portfolios.reports.total_value.tooltip" | translate), title="", classes="summary-item__header-icon")}}
</h5> </h5>
<p class="summary-item__value">{{ total_portfolio_value | dollars }}</p> <p class="summary-item__value">{{ total_portfolio_value | dollars }}</p>
</div> </div>
<div class='col col--grow summary-item'> <div class='col col--grow summary-item'>
<h5 class="summary-item__header"> <h5 class="summary-item__header">
<span class="summary-item__header-text">Funding Duration</span> <span class="summary-item__header-text">{{ "portfolios.reports.duration.header" | translate }}</span>
{{Tooltip(("common.lorem" | translate), title="", classes="summary-item__header-icon")}} {{Tooltip(("portfolios.reports.duration.tooltip" | translate), title="", classes="summary-item__header-icon")}}
</h5> </h5>
{% set earliest_pop_start_date, latest_pop_end_date = portfolio.funding_duration %} {% set earliest_pop_start_date, latest_pop_end_date = portfolio.funding_duration %}
{% if earliest_pop_start_date and latest_pop_end_date %} {% if earliest_pop_start_date and latest_pop_end_date %}
@ -28,8 +28,8 @@
</div> </div>
<div class='col col--grow summary-item'> <div class='col col--grow summary-item'>
<h5 class="summary-item__header"> <h5 class="summary-item__header">
<span class="summary-item__header-text">Days Remaining</span> <span class="summary-item__header-text">{{ "portfolios.reports.days_remaining.header" | translate }}</span>
{{Tooltip(("common.lorem" | translate), title="", classes="summary-item__header-icon")}} {{Tooltip(("portfolios.reports.days_remaining.toolip" | translate), title="", classes="summary-item__header-icon")}}
</h5> </h5>
<p class="summary-item__value">{{ portfolio.days_to_funding_expiration }} days</p> <p class="summary-item__value">{{ portfolio.days_to_funding_expiration }} days</p>
</div> </div>

View File

@ -11,16 +11,7 @@
<section class="row"> <section class="row">
<div class='col col--grow summary-item'> <div class='col col--grow summary-item'>
<h4 class="summary-item__header"> <h4 class="summary-item__header">
<span class="summary-item__header-text">Total obligated funds</span> <span class="summary-item__header-text">{{ 'task_orders.summary.total' | translate }}</span>
{{ Tooltip(("task_orders.review.tooltip.obligated_funds" | translate), title="", classes="summary-item__header-icon") }}
</h4>
<p class="summary-item__value--large">
{{ obligated_funds | dollars }}
</p>
</div>
<div class='col col--grow summary-item'>
<h4 class="summary-item__header">
<span class="summary-item__header-text">Total Task Order value</span>
{{ Tooltip(("task_orders.review.tooltip.total_value" | translate), title="", classes="summary-item__header-icon") }} {{ Tooltip(("task_orders.review.tooltip.total_value" | translate), title="", classes="summary-item__header-icon") }}
</h4> </h4>
<p class="summary-item__value--large"> <p class="summary-item__value--large">
@ -29,7 +20,16 @@
</div> </div>
<div class='col col--grow summary-item'> <div class='col col--grow summary-item'>
<h4 class="summary-item__header"> <h4 class="summary-item__header">
<span class="summary-item__header-text">Total expended funds</span> <span class="summary-item__header-text">{{ 'task_orders.summary.obligated' | translate }}</span>
{{ Tooltip(("task_orders.review.tooltip.obligated_funds" | translate), title="", classes="summary-item__header-icon") }}
</h4>
<p class="summary-item__value--large">
{{ obligated_funds | dollars }}
</p>
</div>
<div class='col col--grow summary-item'>
<h4 class="summary-item__header">
<span class="summary-item__header-text">{{ 'task_orders.summary.expended' | translate }}</span>
{{ Tooltip(("task_orders.review.tooltip.expended_funds" | translate), title="", classes="summary-item__header-icon") }} {{ Tooltip(("task_orders.review.tooltip.expended_funds" | translate), title="", classes="summary-item__header-icon") }}
</h4> </h4>
<p class="summary-item__value--large"> <p class="summary-item__value--large">
@ -39,7 +39,7 @@
</section> </section>
<hr> <hr>
<section> <section>
<h4>Documents</h4> <h4>{{ 'task_orders.form.step_4.documents' | translate }}</h4>
<div class="panel panel__content"> <div class="panel panel__content">
{% if builder_mode %} {% if builder_mode %}
{{ Icon('ok', classes="icon--green icon--medium") }} {{ Icon('ok', classes="icon--green icon--medium") }}
@ -52,7 +52,7 @@
</section> </section>
<hr> <hr>
<section> <section>
<h4>CLIN summary</h4> <h4>{{ 'task_orders.form.step_4.clins' | translate }}</h4>
<table class="fixed-table-wrapper atat-table clin-summary"> <table class="fixed-table-wrapper atat-table clin-summary">
<thead> <thead>
<tr> <tr>

View File

@ -66,7 +66,7 @@
{% call StickyCTA(text="common.task_orders"|translate) %} {% call StickyCTA(text="common.task_orders"|translate) %}
{% if user_can(permissions.CREATE_TASK_ORDER) and task_orders %} {% if user_can(permissions.CREATE_TASK_ORDER) and to_count > 0 %}
<a href="{{ url_for("task_orders.form_step_one_add_pdf", portfolio_id=portfolio.id) }}" class="usa-button usa-button-primary"> <a href="{{ url_for("task_orders.form_step_one_add_pdf", portfolio_id=portfolio.id) }}" class="usa-button usa-button-primary">
{{ "task_orders.add_new_button" | translate }} {{ "task_orders.add_new_button" | translate }}
</a> </a>

View File

@ -16,8 +16,8 @@
{% block to_builder_form_field %} {% block to_builder_form_field %}
{{ TOFormStepHeader( {{ TOFormStepHeader(
title='task_orders.form.supporting_docs_header' | translate, title='task_orders.form.step_1.title' | translate,
description='task_orders.form.supporting_docs_text' | translate, description='task_orders.form.step_1.description' | translate,
) }} ) }}
{{ UploadInput(form.pdf, portfolio.id) }} {{ UploadInput(form.pdf, portfolio.id) }}
{% endblock %} {% endblock %}

View File

@ -8,7 +8,7 @@
{% set next_button_text = 'task_orders.form.step_5.next_button' | translate %} {% set next_button_text = 'task_orders.form.step_5.next_button' | translate %}
{% set previous_button_link = url_for("task_orders.form_step_four_review", task_order_id=task_order_id) %} {% set previous_button_link = url_for("task_orders.form_step_four_review", task_order_id=task_order_id) %}
{% set step = "5" %} {% set step = "5" %}
{% set sticky_cta_text = 'task_orders.form.sticky_header_text' | translate %} {% set sticky_cta_text = 'task_orders.form.step_5.cta_text' | translate %}
{% block to_builder_form_field %} {% block to_builder_form_field %}
{{ TOFormStepHeader( {{ TOFormStepHeader(

View File

@ -78,7 +78,7 @@ components:
errors: errors:
default_sub: An error has occured! default_sub: An error has occured!
not_found: Page Not Found not_found: Page Not Found
not_found_sub: Looks like that page does not exist! not_found_sub: This page does not exist.
email: email:
application_invite: "{inviter_name} has invited you to a JEDI cloud application" application_invite: "{inviter_name} has invited you to a JEDI cloud application"
portfolio_invite: "{inviter_name} has invited you to a JEDI cloud portfolio" portfolio_invite: "{inviter_name} has invited you to a JEDI cloud portfolio"
@ -98,8 +98,7 @@ flash:
title: Application invitation error title: Application invitation error
message: There was an error processing the invitation for {user_name} from {application_name} message: There was an error processing the invitation for {user_name} from {application_name}
resent: resent:
title: Application invitation resent message: "{email} has been sent an invitation to access this Application"
message: You have successfully resent the invite for {user_name} from {application_name}
revoked: revoked:
title: Application invitation revoked title: Application invitation revoked
message: You have successfully revoked the invite for {user_name} from {application_name} message: You have successfully revoked the invite for {user_name} from {application_name}
@ -137,7 +136,9 @@ flash:
logged_out: logged_out:
title: Logged out title: Logged out
message: You've been logged out. message: You've been logged out.
new_portfolio_member: 'You have successfully invited {user_name} to the portfolio.' new_portfolio_member:
title: "{user_name}'s invitation has been sent"
message: "{user_name}'s access to this Portfolio is pending until they sign in for the first time."
new_ppoc_message: 'You have successfully added {ppoc_name} as the primary point of contact. You are no longer the PPoC.' new_ppoc_message: 'You have successfully added {ppoc_name} as the primary point of contact. You are no longer the PPoC.'
new_ppoc_title: Primary point of contact updated new_ppoc_title: Primary point of contact updated
portfolio_member: portfolio_member:
@ -152,8 +153,7 @@ flash:
message: An unexpected problem occurred with your request, please try again. If the problem persists, contact an administrator. message: An unexpected problem occurred with your request, please try again. If the problem persists, contact an administrator.
portfolio_invite: portfolio_invite:
resent: resent:
title: Invitation resent message: "{email} has been sent an invitation to access this Portfolio"
message: Successfully sent a new invitation to {user_name}.
error: error:
title: Portfolio invitation error title: Portfolio invitation error
message: There was an error processing the invitation for {user_name}. message: There was an error processing the invitation for {user_name}.
@ -210,6 +210,7 @@ forms:
label: Edit Applications label: Edit Applications
description: Add, remove and edit applications in this Portfolio. description: Add, remove and edit applications in this Portfolio.
dod_id_label: DoD ID dod_id_label: DoD ID
dod_help: How do I find out the DoD ID?
email_label: Email address email_label: Email address
first_name_label: First name first_name_label: First name
funding: funding:
@ -260,6 +261,7 @@ forms:
marine_corps: Marine Corps marine_corps: Marine Corps
navy: Navy navy: Navy
other: Other other: Other
title: Select DoD component(s) funding your Portfolio
validation_message: You must select at least one defense component. validation_message: You must select at least one defense component.
help_text: | help_text: |
<p> <p>
@ -276,7 +278,7 @@ forms:
upload_error: There was an error uploading your file. Please try again. If you encounter repeated problems uploading this file, please contact CCPO. upload_error: There was an error uploading your file. Please try again. If you encounter repeated problems uploading this file, please contact CCPO.
size_error: The file you have selected is too large. Please choose a file no larger than 64MB. size_error: The file you have selected is too large. Please choose a file no larger than 64MB.
filename_error: File names can only contain the characters A-Z, 0-9, space, hyphen, underscore, and period. filename_error: File names can only contain the characters A-Z, 0-9, space, hyphen, underscore, and period.
number_description: Task order number (13 digits) number_description: 13-Digit Task Order Number
pop_errors: pop_errors:
date_order: PoP start date must be before end date. date_order: PoP start date must be before end date.
range: Date must be between {start} and {end}. range: Date must be between {start} and {end}.
@ -285,7 +287,7 @@ forms:
start_past_contract: PoP start date must be before or on {date}. start_past_contract: PoP start date must be before or on {date}.
start_pre_contract: PoP start date must be on or after {date}. start_pre_contract: PoP start date must be on or after {date}.
clin_funding_errors: clin_funding_errors:
obligated_amount_error: Obligated amount must be less than or equal to total amount obligated_amount_error: Obligated funds can not exceed total CLIN value
funding_range_error: Dollar amount must be from $0.00 to $1,000,000,000.00 funding_range_error: Dollar amount must be from $0.00 to $1,000,000,000.00
validators: validators:
is_number_message: Please enter a valid number. is_number_message: Please enter a valid number.
@ -356,8 +358,8 @@ portfolios:
'False': View Reporting 'False': View Reporting
'True': Edit Reporting 'True': Edit Reporting
applications: applications:
add_environment: Create an Environment add_environment: Add an Environment
add_member: Add New Member add_member: Add Team Member
add_another_environment: Add another environment add_another_environment: Add another environment
create_button: Create Application create_button: Create Application
empty_state: empty_state:
@ -384,7 +386,7 @@ portfolios:
description: | description: |
<div> <div>
<p> <p>
Add a brief one to two sentence description of your application. You should be able to reference your TO Description of Work. Add a brief one to two sentence description of your Application. You should be able to reference your TO Description of Work.
</p> </p>
<p> <p>
<strong>Writer's Block? A description example includes:</strong> <strong>Writer's Block? A description example includes:</strong>
@ -394,10 +396,11 @@ portfolios:
</p> </p>
</div> </div>
step_2_header: Add Environments to {application_name} step_2_header: Add Environments to {application_name}
step_2_description: Development, Testing, Staging, and Production environments are included by default. However, you can add, edit, and delete environments based on the needs of your Application. step_2_description: Production, Staging, Testing, and Development environments are included by default. However, you can add, edit, and delete environments based on the needs of your Application.
step_2_button_text: "Next: Add Members" step_2_button_text: "Next: Add Members"
step_3_header: Add Members to {application_name} step_3_header: Add Members to {application_name}
step_3_description: "To proceed, you will need each member's email address and DOD ID. Within this section, you will also assign Application-level permissions and environment-level roles for each member." step_3_description: "To proceed, you will need each member's email address and DOD ID. Within this section, you will also assign Application-level permissions and environment-level roles for each member."
step_3_button_text: Save Application
create_new_env: Create a new environment. create_new_env: Create a new environment.
create_new_env_info: Creating an environment gives you access to the Cloud Service Provider. This environment will function within the constraints of the task order, and any costs will be billed against the portfolio. create_new_env_info: Creating an environment gives you access to the Cloud Service Provider. This environment will function within the constraints of the task order, and any costs will be billed against the portfolio.
csp_link: Cloud Service Provider Link csp_link: Cloud Service Provider Link
@ -429,7 +432,7 @@ portfolios:
description: Additional role controls are available in the CSP console. <a href="#"> Learn More </a> description: Additional role controls are available in the CSP console. <a href="#"> Learn More </a>
revoke_warning: Save changes to revoke access, <strong>this can not be undone.</strong> revoke_warning: Save changes to revoke access, <strong>this can not be undone.</strong>
suspended: Suspended access cannot be modified. suspended: Suspended access cannot be modified.
next_button: "Next: Permissions" next_button: "Next: Roles and Permissions"
app_perms: app_perms:
title: Application Permissions title: Application Permissions
description: Application permissions allow users to provision and modify applications and teams. <a href="#"> Learn More </a> description: Application permissions allow users to provision and modify applications and teams. <a href="#"> Learn More </a>
@ -449,10 +452,25 @@ portfolios:
perms_del_env: perms_del_env:
'False': "" 'False': ""
'True': Delete Application 'True': Delete Application
roles:
ADMIN: Admin
BILLING_READ: Billing Read-only
CONTRIBUTOR: Contributor
header: PORTFOLIO header: PORTFOLIO
new:
title: New Portfolio
cta_step_1: Name and Describe Portfolio
sticky_header_context: 'Step {step} of 1'
save: Save Portfolio
members: members:
archive_button: Delete member archive_button: Delete member
reports: reports:
days_remaining:
header: Days Remaining
toolip: Days remaining are the days of funding remaining in the portfolio.
duration:
header: Funding Duration
tooltip: Funding duration is the period of time that there is a valid task order funding the portfolio.
estimate_warning: Reports displayed in JEDI are estimates and not a system of record. estimate_warning: Reports displayed in JEDI are estimates and not a system of record.
empty_state: empty_state:
message: Nothing to report. message: Nothing to report.
@ -460,6 +478,9 @@ portfolios:
can_create_applications: This portfolio has no cloud environments set up, so there is no spending data to report. Create an application with some cloud environments to get started. can_create_applications: This portfolio has no cloud environments set up, so there is no spending data to report. Create an application with some cloud environments to get started.
cannot_create_applications: This portfolio has no cloud environments set up, so there is no spending data to report. Contact the portfolio owner to set up some cloud environments. cannot_create_applications: This portfolio has no cloud environments set up, so there is no spending data to report. Contact the portfolio owner to set up some cloud environments.
action_label: 'Add a new application' action_label: 'Add a new application'
total_value:
header: Total Portfolio Value
tooltip: Total portfolio value is all obligated and projected funds for all task orders in this portfolio.
task_orders: task_orders:
add_new_button: Add New Task Order add_new_button: Add New Task Order
review: review:
@ -480,9 +501,9 @@ task_orders:
total_value: All obligated and projected funds for the Task Orders Base and Option CLINs. total_value: All obligated and projected funds for the Task Orders Base and Option CLINs.
expended_funds: All funds spend from the Task Order so far. expended_funds: All funds spend from the Task Order so far.
form: form:
add_clin: Add another CLIN add_clin: Add Another CLIN
add_to_header: Add your task order add_to_header: Enter the Task Order number
add_to_description: Now, refer to your document to find the 13-digit task order number. It should be located at lorem ipsum dolar. From now on we'll refer to this portion of funding by the recorded task order number. add_to_description: Please input your 13-digit Task Order number. This number may be listed under "Order Number" if your Contracting Officer used form 1149, or "Delivery Order/Call No." if form 1155 was used. Moving forward, this portion of funding will be referenced by the recorded Task Order number.
clin_title: Enter Contract Line Items clin_title: Enter Contract Line Items
clin_description: "Refer to your task order to locate your Contract Line Item Numbers (CLINs)." clin_description: "Refer to your task order to locate your Contract Line Item Numbers (CLINs)."
clin_details: CLIN Details clin_details: CLIN Details
@ -496,19 +517,25 @@ task_orders:
draft_alert_message: You can return to the Task Order Builder to enter missing information. Once you are finished, youll be ready to submit this request. draft_alert_message: You can return to the Task Order Builder to enter missing information. Once you are finished, youll be ready to submit this request.
total_funds_label: Total CLIN Value total_funds_label: Total CLIN Value
obligated_funds_label: Obligated Funds obligated_funds_label: Obligated Funds
pop: Period of Performance pop: Period of Performance (PoP)
pop_end: End Date pop_end: End Date
pop_end_alert: "A CLIN's period of performance must end before {end_date}." pop_end_alert: "A CLIN's period of performance must end before {end_date}."
pop_example: "For example: 07 04 1776" pop_example: "For example: 07 04 1776"
pop_start: Start Date pop_start: Start Date
supporting_docs_header: Upload your supporting documentation
supporting_docs_size_limit: Your file may not exceed 64MB supporting_docs_size_limit: Your file may not exceed 64MB
supporting_docs_text: Upload a single PDF containing all relevant information. step_1:
title: Upload your approved Task Order (TO)
description: Upload your approved Task Order here. You are required to confirm you have the appropriate signature. You will have the ability to add additional approved Task Orders with more funding to this Portfolio in the future.
step_3: step_3:
next_button: 'Next: Review Task Order' next_button: 'Next: Review Task Order'
percent_obligated: '% of Funds Obligated'
step_4:
documents: Documents
clins: CLIN Summary
step_5: step_5:
cta_text: Verify Your Information
description: Prior to submitting the Task Order, you must acknowledge, by marking the appropriate box below, that the uploaded Task Order is signed by an appropriate, duly warranted Contracting Officer who has the authority to execute the uploaded Task Order on your Agencys behalf and has authorized you to upload the Task Order in accordance with Agency policy and procedures. You must further acknowledge, by marking the appropriate box below, that all information entered herein matches that of the submitted Task Order. description: Prior to submitting the Task Order, you must acknowledge, by marking the appropriate box below, that the uploaded Task Order is signed by an appropriate, duly warranted Contracting Officer who has the authority to execute the uploaded Task Order on your Agencys behalf and has authorized you to upload the Task Order in accordance with Agency policy and procedures. You must further acknowledge, by marking the appropriate box below, that all information entered herein matches that of the submitted Task Order.
next_button: 'Confirm & Submit' next_button: 'Submit Task Order'
sticky_header_text: 'Add a Task Order' sticky_header_text: 'Add a Task Order'
sticky_header_review_text: Review Changes sticky_header_review_text: Review Changes
sticky_header_context: 'Step {step} of 5' sticky_header_context: 'Step {step} of 5'
@ -525,6 +552,10 @@ task_orders:
text: I acknowledge, by executing the confirmation above and submitting this verification, that I am subject to potential penalties that may include fines, imprisonment, or both, under the U.S. law and regulations for any false statement or misrepresentation in association with this Task Order submission or on any accompanying documentation. text: I acknowledge, by executing the confirmation above and submitting this verification, that I am subject to potential penalties that may include fines, imprisonment, or both, under the U.S. law and regulations for any false statement or misrepresentation in association with this Task Order submission or on any accompanying documentation.
status_empty_state: 'This Portfolio has no {status} Task Orders.' status_empty_state: 'This Portfolio has no {status} Task Orders.'
status_list_title: '{status} Task Orders' status_list_title: '{status} Task Orders'
summary:
obligated: Total Obligated
total: Total Value
expended: Total Expended
JEDICLINType: JEDICLINType:
JEDI_CLIN_1: 'IDIQ CLIN 0001 Unclassified IaaS/PaaS' JEDI_CLIN_1: 'IDIQ CLIN 0001 Unclassified IaaS/PaaS'
JEDI_CLIN_2: 'IDIQ CLIN 0002 Classified IaaS/PaaS' JEDI_CLIN_2: 'IDIQ CLIN 0002 Classified IaaS/PaaS'