rename Workspace to Portfolio in user-facing contexts

This commit is contained in:
dandds 2019-01-10 15:28:34 -05:00
parent b8c36f371f
commit 142395f1e9
21 changed files with 54 additions and 54 deletions

View File

@ -12,7 +12,7 @@ MESSAGES = {
"revoked_workspace_access": { "revoked_workspace_access": {
"title_template": "Removed workspace access", "title_template": "Removed workspace access",
"message_template": """ "message_template": """
<p>Workspace access successfully removed from {{ member_name }}.</p> <p>Portfolio access successfully removed from {{ member_name }}.</p>
""", """,
"category": "success", "category": "success",
}, },
@ -24,7 +24,7 @@ MESSAGES = {
"category": "success", "category": "success",
}, },
"workspace_role_updated": { "workspace_role_updated": {
"title_template": "Workspace role updated successfully", "title_template": "Portfolio role updated successfully",
"message_template": """ "message_template": """
<p>{{ member_name }}'s role was successfully updated to {{ updated_role }}</p> <p>{{ member_name }}'s role was successfully updated to {{ updated_role }}</p>
""", """,
@ -45,7 +45,7 @@ MESSAGES = {
"category": "warning", "category": "warning",
}, },
"new_workspace": { "new_workspace": {
"title_template": "Workspace created!", "title_template": "Portfolio created!",
"message_template": """ "message_template": """
<p>You are now ready to create projects and environments within the JEDI Cloud.</p> <p>You are now ready to create projects and environments within the JEDI Cloud.</p>
""", """,

View File

@ -38,8 +38,8 @@
<p>After your Task Order is approved you must add that information to your JEDI Cloud Access Request for financial verification.</p> <p>After your Task Order is approved you must add that information to your JEDI Cloud Access Request for financial verification.</p>
</li> </li>
<li> <li>
<h3 class="h4">Designate Workspace Users</h3> <h3 class="h4">Designate Portfolio Users</h3>
<p>Once your JEDI Cloud Access Request is approved by the CCPO the workspace owner will need to set up projects, environments, and users. The workspace owner is the technical POC you originally designated on the request.</p> <p>Once your JEDI Cloud Access Request is approved by the CCPO the portfolio owner will need to set up projects, environments, and users. The portfolio owner is the technical POC you originally designated on the request.</p>
</li> </li>
<li> <li>
<h3 class="h4">Use JEDI Cloud</h3> <h3 class="h4">Use JEDI Cloud</h3>

View File

@ -1,5 +1,5 @@
{% extends "audit_log/events/_base.html" %} {% extends "audit_log/events/_base.html" %}
{% block content %} {% block content %}
in Workspace <code>{{ event.workspace_id }}</code> ({{ event.workspace.name }}) in Portfolio <code>{{ event.workspace_id }}</code> ({{ event.workspace.name }})
{% endblock %} {% endblock %}

View File

@ -14,6 +14,6 @@
<br> <br>
in Project <code>{{ event.event_details["project_id"] }}</code> ({{ event.event_details["project"] }}) in Project <code>{{ event.event_details["project_id"] }}</code> ({{ event.event_details["project"] }})
<br> <br>
in Workspace <code>{{ event.event_details["workspace_id"] }}</code> ({{ event.event_details["workspace"] }}) in Portfolio <code>{{ event.event_details["workspace_id"] }}</code> ({{ event.event_details["workspace"] }})
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@ -10,5 +10,5 @@
invited {{ event.event_details.email }} (DOD <code>{{ event.event_details.dod_id }}</code>) invited {{ event.event_details.email }} (DOD <code>{{ event.event_details.dod_id }}</code>)
<br> <br>
{% endif %} {% endif %}
in Workspace <code>{{ event.workspace_id }}</code> ({{ event.workspace.name }}) in Portfolio <code>{{ event.workspace_id }}</code> ({{ event.workspace.name }})
{% endblock %} {% endblock %}

View File

@ -2,7 +2,7 @@
{% block content %} {% block content %}
for User <code>{{ event.event_details.updated_user_id }}</code> ({{ event.event_details.updated_user_name }}) for User <code>{{ event.event_details.updated_user_id }}</code> ({{ event.event_details.updated_user_name }})
in Workspace <code>{{ event.workspace_id }}</code> ({{ event.workspace.name }}) in Portfolio <code>{{ event.workspace_id }}</code> ({{ event.workspace.name }})
{% if event.changed_state.status %} {% if event.changed_state.status %}
from status "{{ event.changed_state.status[0] }}" to "{{ event.changed_state.status[1] }}" from status "{{ event.changed_state.status[0] }}" to "{{ event.changed_state.status[1] }}"

View File

@ -1,12 +1,12 @@
Join this JEDI Cloud Workspace Join this JEDI Cloud Portfolio
{{ owner }} has invited you to join a JEDI Cloud Workspace. Login now to view or use your JEDI Cloud resources. {{ owner }} has invited you to join a JEDI Cloud Portfolio. Login now to view or use your JEDI Cloud resources.
{{ url_for("workspaces.accept_invitation", token=token, _external=True) }} {{ url_for("workspaces.accept_invitation", token=token, _external=True) }}
What is JEDI Cloud? What is JEDI Cloud?
JEDI Cloud is a DoD enterprise-wide solution for commercial cloud services. JEDI Cloud is a DoD enterprise-wide solution for commercial cloud services.
What is a JEDI Cloud Workspace? What is a JEDI Cloud Portfolio?
A JEDI Cloud Workspace is where you may access and manage the cloud resources associated with your projects and environments. A JEDI Cloud Portfolio is where you may access and manage the cloud resources associated with your projects and environments.
JEDI Cloud is managed by the Cloud Computing Program Office. Learn more at jedi.cloud. JEDI Cloud is managed by the Cloud Computing Program Office. Learn more at jedi.cloud.

View File

@ -128,7 +128,7 @@
<h4>Project Structure for JEDI Cloud</h4> <h4>Project Structure for JEDI Cloud</h4>
<p>Separate your workspace into projects and environments; this allows your team to manage user access to systems more securely and track expenditures for each project.</p> <p>Separate your portfolio into projects and environments; this allows your team to manage user access to systems more securely and track expenditures for each project.</p>
<p>Heres an example:<br> <p>Heres an example:<br>
Project A has a development environment, production environment, and sandbox environment. The cloud resources in the development environment are grouped and accessed separately from the production environment and sandbox environment.</p> Project A has a development environment, production environment, and sandbox environment. The cloud resources in the development environment are grouped and accessed separately from the production environment and sandbox environment.</p>

View File

@ -13,4 +13,4 @@
<a class="sidenav__link" href="/">Logout</a> <a class="sidenav__link" href="/">Logout</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -9,7 +9,7 @@
) }} ) }}
{% if g.current_user.has_workspaces %} {% if g.current_user.has_workspaces %}
{{ SidenavItem("Workspaces", href="/workspaces", icon="cloud", active=g.matchesPath('/workspaces')) }} {{ SidenavItem("Portfolios", href="/workspaces", icon="cloud", active=g.matchesPath('/workspaces')) }}
{% endif %} {% endif %}
{% if g.Authorization.has_atat_permission(g.current_user, g.Permissions.VIEW_AUDIT_LOG) %} {% if g.Authorization.has_atat_permission(g.current_user, g.Permissions.VIEW_AUDIT_LOG) %}

View File

@ -128,7 +128,7 @@
<hr> <hr>
<h2> <h2>
Workspace Owner Portfolio Owner
{% if editable %} {% if editable %}
<a href="{{ EditLink(3) }}" class="icon-link"> <a href="{{ EditLink(3) }}" class="icon-link">
{{ Icon('edit') }} {{ Icon('edit') }}

View File

@ -4,7 +4,7 @@
{% from "components/checkbox_input.html" import CheckboxInput %} {% from "components/checkbox_input.html" import CheckboxInput %}
{% block heading %} {% block heading %}
Designate a Workspace Owner Designate a Portfolio Owner
{% endblock %} {% endblock %}
{% block form %} {% block form %}
@ -14,17 +14,17 @@
<poc inline-template v-bind:initial-data='{{ f.data|tojson }}'> <poc inline-template v-bind:initial-data='{{ f.data|tojson }}'>
<div> <div>
<p>The Workspace Owner is the primary point of contact and technical administrator of the JEDI Cloud Workspace and will have the <p>The Portfolio Owner is the primary point of contact and technical administrator of the JEDI Cloud Portfolio and will have the
following responsibilities:</p> following responsibilities:</p>
<ul> <ul>
<li>Organize your cloud-hosted systems into projects and environments</li> <li>Organize your cloud-hosted systems into projects and environments</li>
<li>Add users to this workspace and manage members</li> <li>Add users to this portfolio and manage members</li>
<li>Manage access to the JEDI Cloud service providers portal</li> <li>Manage access to the JEDI Cloud service providers portal</li>
</ul> </ul>
</p> </p>
<p>This person must be a DoD employee (not a contractor).</p> <p>This person must be a DoD employee (not a contractor).</p>
<p>The Workspace Owner may be you. You will be able to add other administrators later. This person will be invited via email <p>The Portfolio Owner may be you. You will be able to add other administrators later. This person will be invited via email
once your request is approved.</p> once your request is approved.</p>
{{ CheckboxInput(f.am_poc) }} {{ CheckboxInput(f.am_poc) }}

View File

@ -13,7 +13,7 @@
<div class="panel"> <div class="panel">
<div class="panel__heading"> <div class="panel__heading">
<h1>Workspace Settings</h1> <h1>Portfolio Settings</h1>
</div> </div>
<div class="panel__content"> <div class="panel__content">

View File

@ -5,7 +5,7 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<th>Workspace Name</th> <th>Portfolio Name</th>
<th>Task Order</th> <th>Task Order</th>
<th>Users</th> <th>Users</th>
</tr> </tr>

View File

@ -52,7 +52,7 @@
{% endif %} {% endif %}
{% if can_revoke_access %} {% if can_revoke_access %}
{{ ConfirmationButton ( {{ ConfirmationButton (
"Remove Workspace Access", "Remove Portfolio Access",
url_for("workspaces.revoke_access", workspace_id=workspace.id, member_id=member.id), url_for("workspaces.revoke_access", workspace_id=workspace.id, member_id=member.id),
confirm_msg="Are you sure? This will remove this user from the workspace.", confirm_msg="Are you sure? This will remove this user from the workspace.",
)}} )}}

View File

@ -10,10 +10,10 @@
{% set user_can_invite = user_can(permissions.ASSIGN_AND_UNASSIGN_ATAT_ROLE) %} {% set user_can_invite = user_can(permissions.ASSIGN_AND_UNASSIGN_ATAT_ROLE) %}
{{ EmptyState( {{ EmptyState(
'There are currently no members in this Workspace.', 'There are currently no members in this Portfolio.',
action_label='Invite a new Member' if user_can_invite else None, action_label='Invite a new Member' if user_can_invite else None,
action_href='/members/new' if user_can_invite else None, action_href='/members/new' if user_can_invite else None,
sub_message=None if user_can_invite else 'Please contact your JEDI Cloud workspace administrator to invite new members.', sub_message=None if user_can_invite else 'Please contact your JEDI Cloud portfolio administrator to invite new members.',
icon='avatar' icon='avatar'
) }} ) }}

View File

@ -11,11 +11,11 @@
{% set can_create_projects = user_can(permissions.ADD_APPLICATION_IN_WORKSPACE) %} {% set can_create_projects = user_can(permissions.ADD_APPLICATION_IN_WORKSPACE) %}
{{ EmptyState( {{ EmptyState(
'This workspace doesnt have any projects yet.', 'This portfolio doesnt have any projects yet.',
action_label='Add a New Project' if can_create_projects else None, action_label='Add a New Project' if can_create_projects else None,
action_href=url_for('workspaces.new_project', workspace_id=workspace.id) if can_create_projects else None, action_href=url_for('workspaces.new_project', workspace_id=workspace.id) if can_create_projects else None,
icon='cloud', icon='cloud',
sub_message=None if can_create_projects else 'Please contact your JEDI Cloud workspace administrator to set up a new project.' sub_message=None if can_create_projects else 'Please contact your JEDI Cloud portfolio administrator to set up a new project.'
) }} ) }}
{% else %} {% else %}

View File

@ -6,7 +6,7 @@
{% block workspace_content %} {% block workspace_content %}
{{ Alert("Budget Report for Workspace " + workspace.name, {{ Alert("Budget Report for Portfolio " + workspace.name,
message="<p>Track your monthly and cumulative expenditures for your workspace, projects, and environments below.</p>\ message="<p>Track your monthly and cumulative expenditures for your workspace, projects, and environments below.</p>\
<p>Please note that the projected spend is based on the <em>average expense over the last three completed months</em> and therefore does not account for future changes that might be made in scale or configuration of your cloud services.</p>", <p>Please note that the projected spend is based on the <em>average expense over the last three completed months</em> and therefore does not account for future changes that might be made in scale or configuration of your cloud services.</p>",
actions=[ actions=[
@ -18,7 +18,7 @@
<div class='funding-summary-row__col'> <div class='funding-summary-row__col'>
<div class='panel spend-summary'> <div class='panel spend-summary'>
<div class='row'> <div class='row'>
<h2 class='spend-summary__heading col'>Workspace Total Spend</h2> <h2 class='spend-summary__heading col'>Portfolio Total Spend</h2>
<dl class='spend-summary__budget'> <dl class='spend-summary__budget'>
{% set budget = workspace_totals['budget'] %} {% set budget = workspace_totals['budget'] %}
{% set spent = workspace_totals['spent'] %} {% set spent = workspace_totals['spent'] %}
@ -116,9 +116,9 @@
{% if not workspace.projects %} {% if not workspace.projects %}
{% set can_create_projects = user_can(permissions.ADD_APPLICATION_IN_WORKSPACE) %} {% set can_create_projects = user_can(permissions.ADD_APPLICATION_IN_WORKSPACE) %}
{% set message = 'This workspace has no cloud environments set up, so there is no spending data to report. Create a project with some cloud environments to get started.' {% set message = 'This portfolio has no cloud environments set up, so there is no spending data to report. Create a project with some cloud environments to get started.'
if can_create_projects if can_create_projects
else 'This workspace has no cloud environments set up, so there is no spending data to report. Contact the workspace owner to set up some cloud environments.' else '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.'
%} %}
{{ EmptyState( {{ EmptyState(

View File

@ -7,7 +7,7 @@
{% if not workspace.task_orders %} {% if not workspace.task_orders %}
{{ EmptyState( {{ EmptyState(
'This workspace doesnt have any task orders yet.', 'This portfolio doesnt have any task orders yet.',
action_label='Add a New Task Order', action_label='Add a New Task Order',
action_href=url_for('task_orders.new', screen=1, workspace_id=workspace.id), action_href=url_for('task_orders.new', screen=1, workspace_id=workspace.id),
icon='cloud', icon='cloud',

View File

@ -234,7 +234,7 @@ def test_does_not_show_any_buttons_if_owner(client, user_session):
member_id=workspace.owner.id, member_id=workspace.owner.id,
) )
) )
assert "Remove Workspace Access" not in response.data.decode() assert "Remove Portfolio Access" not in response.data.decode()
assert "Resend Invitation" not in response.data.decode() assert "Resend Invitation" not in response.data.decode()
assert "Revoke Invitation" not in response.data.decode() assert "Revoke Invitation" not in response.data.decode()
@ -252,7 +252,7 @@ def test_only_shows_revoke_access_button_if_active(client, user_session):
member_id=member.user.id, member_id=member.user.id,
) )
) )
assert "Remove Workspace Access" in response.data.decode() assert "Remove Portfolio Access" in response.data.decode()
assert "Revoke Invitation" not in response.data.decode() assert "Revoke Invitation" not in response.data.decode()
assert "Resend Invitation" not in response.data.decode() assert "Resend Invitation" not in response.data.decode()
@ -271,7 +271,7 @@ def test_only_shows_revoke_invite_button_if_pending(client, user_session):
) )
) )
assert "Revoke Invitation" in response.data.decode() assert "Revoke Invitation" in response.data.decode()
assert "Remove Workspace Access" not in response.data.decode() assert "Remove Portfolio Access" not in response.data.decode()
assert "Resend Invitation" not in response.data.decode() assert "Resend Invitation" not in response.data.decode()
@ -291,7 +291,7 @@ def test_only_shows_resend_button_if_expired(client, user_session):
) )
assert "Resend Invitation" in response.data.decode() assert "Resend Invitation" in response.data.decode()
assert "Revoke Invitation" not in response.data.decode() assert "Revoke Invitation" not in response.data.decode()
assert "Remove Workspace Access" not in response.data.decode() assert "Remove Portfolio Access" not in response.data.decode()
def test_only_shows_resend_button_if_revoked(client, user_session): def test_only_shows_resend_button_if_revoked(client, user_session):
@ -308,5 +308,5 @@ def test_only_shows_resend_button_if_revoked(client, user_session):
) )
) )
assert "Resend Invitation" in response.data.decode() assert "Resend Invitation" in response.data.decode()
assert "Remove Workspace Access" not in response.data.decode() assert "Remove Portfolio Access" not in response.data.decode()
assert "Revoke Invitation" not in response.data.decode() assert "Revoke Invitation" not in response.data.decode()

View File

@ -54,7 +54,7 @@ forms:
phone_ext_mao_label: Extension (optional) phone_ext_mao_label: Extension (optional)
phone_mao_label: Mission Owner phone number (optional) phone_mao_label: Mission Owner phone number (optional)
edit_member: edit_member:
workspace_role_label: Workspace Role workspace_role_label: Portfolio Role
edit_user: edit_user:
citizenship_description: What is your citizenship status? citizenship_description: What is your citizenship status?
date_latest_training_description: | date_latest_training_description: |
@ -119,10 +119,10 @@ forms:
email_label: Email Address email_label: Email Address
first_name_label: First Name first_name_label: First Name
last_name_label: Last Name last_name_label: Last Name
workspace_role_description: 'The workspace role controls whether a member is permitted to organize a workspace into projects and environments, add members to this workspace, and view billing information.' workspace_role_description: 'The portfolio role controls whether a member is permitted to organize a portfolio into projects and environments, add members to this portfolio, and view billing information.'
workspace_role_label: Workspace Role workspace_role_label: Portfolio Role
new_request: new_request:
am_poc_label: I am the Workspace Owner am_poc_label: I am the Portfolio Owner
average_daily_traffic_description: What is the average daily traffic you expect the systems under this cloud contract to use? average_daily_traffic_description: What is the average daily traffic you expect the systems under this cloud contract to use?
average_daily_traffic_gb_description: What is the average daily traffic you expect the systems under this cloud contract to use? average_daily_traffic_gb_description: What is the average daily traffic you expect the systems under this cloud contract to use?
average_daily_traffic_gb_label: Average Daily Traffic (GB) average_daily_traffic_gb_label: Average Daily Traffic (GB)
@ -145,7 +145,7 @@ forms:
jedi_usage_description: Your answer will help us provide tangible examples to DoD leadership how and why commercial cloud resources are accelerating the Department's missions jedi_usage_description: Your answer will help us provide tangible examples to DoD leadership how and why commercial cloud resources are accelerating the Department's missions
jedi_usage_label: JEDI Usage jedi_usage_label: JEDI Usage
lname_poc_label: Last Name lname_poc_label: Last Name
name_description: This name serves as a reference for your initial request and the associated workspace that will be created once this request is approved. You may edit this name later. name_description: This name serves as a reference for your initial request and the associated portfolio that will be created once this request is approved. You may edit this name later.
name_label: Name Your Request name_label: Name Your Request
name_length_validation_message: Request names must be at least 4 and not more than 100 characters name_length_validation_message: Request names must be at least 4 and not more than 100 characters
num_software_systems_description: Estimate the number of software systems that will be supported by this JEDI Cloud access request num_software_systems_description: Estimate the number of software systems that will be supported by this JEDI Cloud access request
@ -209,12 +209,12 @@ forms:
name_message: 'This field accepts letters, numbers, commas, apostrophes, hyphens, and periods.' name_message: 'This field accepts letters, numbers, commas, apostrophes, hyphens, and periods.'
phone_number_message: Please enter a valid 5 or 10 digit phone number. phone_number_message: Please enter a valid 5 or 10 digit phone number.
workspace: workspace:
name_label: Workspace Name name_label: Portfolio Name
name_length_validation_message: Workspace names must be at least 4 and not more than 50 characters name_length_validation_message: Portfolio names must be at least 4 and not more than 50 characters
fragments: fragments:
edit_project_form: edit_project_form:
existing_project_title: 'Edit {project_name} project' existing_project_title: 'Edit {project_name} project'
explain: 'AT-AT allows you to organize your workspace into multiple projects, each of which may have environments.' explain: 'AT-AT allows you to organize your portfolio into multiple projects, each of which may have environments.'
new_project_title: Add a new project new_project_title: Add a new project
edit_user_form: edit_user_form:
date_last_training_tooltip: When was the last time you completed the IA training? <br> Information Assurance (IA) training is an important step in cyber awareness. date_last_training_tooltip: When was the last time you completed the IA training? <br> Information Assurance (IA) training is an important step in cyber awareness.
@ -225,7 +225,7 @@ fragments:
paragraph_2: 'While your request is being reviewed, your next step is to create a Task Order (TO) associated with the JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.' paragraph_2: 'While your request is being reviewed, your next step is to create a Task Order (TO) associated with the JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.'
pending_ccpo_approval_modal: pending_ccpo_approval_modal:
paragraph_1: The CCPO will review and respond to your Financial Verification submission in 3 business days. You will be notified via email or phone. paragraph_1: The CCPO will review and respond to your Financial Verification submission in 3 business days. You will be notified via email or phone.
paragraph_2: Once the financial verification is approved you will be invited to create your JEDI Workspace and set-up your projects. Click here for more details. paragraph_2: Once the financial verification is approved you will be invited to create your JEDI Portfolio and set-up your projects. Click here for more details.
pending_financial_verification: pending_financial_verification:
learn_more_link_text: Learn more about the JEDI Cloud Task Order and the Financial Verification process. learn_more_link_text: Learn more about the JEDI Cloud Task Order and the Financial Verification process.
paragraph_1: 'The next step is to create a Task Order associated with JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.' paragraph_1: 'The next step is to create a Task Order associated with JEDI Cloud. Please contact a Contracting Officer (KO), Contracting Officer Representative (COR), or a Financial Manager to help with this step.'
@ -243,10 +243,10 @@ navigation:
topbar: topbar:
jedi_cloud_link_text: JEDI Cloud jedi_cloud_link_text: JEDI Cloud
logout_link_title: Log out of JEDI Cloud logout_link_title: Log out of JEDI Cloud
named_workspace: 'Workspace {workspace}' named_workspace: 'Portfolio {workspace}'
no_other_active_workspaces: You have no other active JEDI workspaces. no_other_active_workspaces: You have no other active JEDI portfolios.
other_active_workspaces: Other Active Workspaces other_active_workspaces: Other Active Portfolios
request_workspace_link_text: Request a new JEDI Workspace request_workspace_link_text: Request a new JEDI Portfolio
workspace_navigation: workspace_navigation:
add_new_member_label: Add New Member add_new_member_label: Add New Member
add_new_project_label: Add New Project add_new_project_label: Add New Project
@ -255,7 +255,7 @@ navigation:
members: Members members: Members
projects: Projects projects: Projects
task_orders: Task Orders task_orders: Task Orders
workspace_settings: Workspace Settings workspace_settings: Portfolio Settings
requests: requests:
_new: _new:
new_request: New Request new_request: New Request
@ -308,8 +308,8 @@ requests:
financial_verification_submitted_title: Financial Verification submitted! financial_verification_submitted_title: Financial Verification submitted!
no_requests_found: No requests found. no_requests_found: No requests found.
no_workspaces_action_label: Create a new JEDI Cloud Request no_workspaces_action_label: Create a new JEDI Cloud Request
no_workspaces_label: You currently have no JEDI Cloud workspaces. no_workspaces_label: You currently have no JEDI Cloud portfolios.
no_workspaces_sub_message: A JEDI Cloud Workspace is where you manage your projects and control user access to those projects. no_workspaces_sub_message: A JEDI Cloud Portfolio is where you manage your projects and control user access to those projects.
pending_ccpo_action: Pending CCPO Action pending_ccpo_action: Pending CCPO Action
request_submitted_title: Request submitted! request_submitted_title: Request submitted!
requests_in_progress: Requests in progress requests_in_progress: Requests in progress