{{ new_member.user_name }} was successfully invited via email to this workspace. They do not yet have access to any environments.
- +{{ new_member.user_name }} was successfully invited via email to this portfolio. They do not yet have access to any environments.
+ """, "category": "success", }, - "revoked_workspace_access": { - "title_template": "Removed workspace access", + "revoked_portfolio_access": { + "title_template": "Removed portfolio access", "message_template": """ -Workspace access successfully removed from {{ member_name }}.
+Portfolio access successfully removed from {{ member_name }}.
""", "category": "success", }, - "resend_workspace_invitation": { + "resend_portfolio_invitation": { "title_template": "Invitation resent", "message_template": """Successfully sent a new invitation to {{ user_name }}.
""", "category": "success", }, - "workspace_role_updated": { - "title_template": "Workspace role updated successfully", + "portfolio_role_updated": { + "title_template": "Portfolio role updated successfully", "message_template": """{{ member_name }}'s role was successfully updated to {{ updated_role }}
""", @@ -44,14 +44,14 @@ MESSAGES = { """, "category": "warning", }, - "new_workspace": { - "title_template": "Workspace created!", + "new_portfolio": { + "title_template": "Portfolio created!", "message_template": """ -You are now ready to create projects and environments within the JEDI Cloud.
+You are now ready to create applications and environments within the JEDI Cloud.
""", "category": "success", }, - "workspace_member_dod_id_error": { + "portfolio_member_dod_id_error": { "title_template": "CAC ID Error", "message_template": """ The member attempted to accept this invite, but their CAC ID did not match the CAC ID you specified on the invite. Please confirm that the DOD ID is accurate. diff --git a/js/components/forms/edit_project_roles.js b/js/components/forms/edit_application_roles.js similarity index 92% rename from js/components/forms/edit_project_roles.js rename to js/components/forms/edit_application_roles.js index d1c5107c..ef7438d5 100644 --- a/js/components/forms/edit_project_roles.js +++ b/js/components/forms/edit_application_roles.js @@ -4,7 +4,7 @@ import toggler from '../toggler' import EditEnvironmentRole from './edit_environment_role' export default { - name: 'edit-project-roles', + name: 'edit-application-roles', mixins: [FormMixin, Modal], diff --git a/js/components/forms/edit_environment_role.js b/js/components/forms/edit_environment_role.js index 45a3506a..4bb8fb55 100644 --- a/js/components/forms/edit_environment_role.js +++ b/js/components/forms/edit_environment_role.js @@ -20,7 +20,7 @@ export default { props: { choices: Array, initialData: String, - projectId: String + applicationId: String }, data: function () { @@ -30,7 +30,7 @@ export default { }, mounted: function() { - this.$root.$on('revoke-' + this.projectId, this.revoke) + this.$root.$on('revoke-' + this.applicationId, this.revoke) }, methods: { diff --git a/js/components/forms/new_project.js b/js/components/forms/new_application.js similarity index 99% rename from js/components/forms/new_project.js rename to js/components/forms/new_application.js index ebcea13f..d607b101 100644 --- a/js/components/forms/new_project.js +++ b/js/components/forms/new_application.js @@ -4,7 +4,7 @@ import textinput from '../text_input' const createEnvironment = (name) => ({ name }) export default { - name: 'new-project', + name: 'new-application', mixins: [FormMixin], diff --git a/js/components/members_list.js b/js/components/members_list.js index 71db3796..57695ad2 100644 --- a/js/components/members_list.js +++ b/js/components/members_list.js @@ -84,7 +84,7 @@ export default { sortFunc: alphabeticalSort }, { - displayName: 'Workspace Role', + displayName: 'Portfolio Role', attr: 'role', sortFunc: alphabeticalSort, }, diff --git a/js/components/requests_list.js b/js/components/requests_list.js index 735dcdd3..6f3adcb9 100644 --- a/js/components/requests_list.js +++ b/js/components/requests_list.js @@ -60,7 +60,7 @@ export default { sortFunc: defaultSort, }, { - displayName: 'Projected Annual Usage ($)', + displayName: 'Applicationed Annual Usage ($)', attr: 'annual_usage', sortFunc: defaultSort, }, diff --git a/js/components/tables/spend_table.js b/js/components/tables/spend_table.js index fd694ce7..56f68b70 100644 --- a/js/components/tables/spend_table.js +++ b/js/components/tables/spend_table.js @@ -5,8 +5,8 @@ export default { name: 'spend-table', props: { - projects: Object, - workspace: Object, + applications: Object, + portfolio: Object, environments: Object, currentMonthIndex: String, prevMonthIndex: String, @@ -15,21 +15,21 @@ export default { data: function () { return { - projectsState: this.projects + applicationsState: this.applications } }, created: function () { - Object.keys(this.projects).forEach(project => { - set(this.projectsState[project], 'isVisible', false) + Object.keys(this.applications).forEach(application => { + set(this.applicationsState[application], 'isVisible', false) }) }, methods: { - toggle: function (e, projectName) { - this.projectsState = Object.assign(this.projectsState, { - [projectName]: Object.assign(this.projectsState[projectName],{ - isVisible: !this.projectsState[projectName].isVisible + toggle: function (e, applicationName) { + this.applicationsState = Object.assign(this.applicationsState, { + [applicationName]: Object.assign(this.applicationsState[applicationName],{ + isVisible: !this.applicationsState[applicationName].isVisible }) }) }, diff --git a/js/index.js b/js/index.js index 5bbee5d1..97fe3acc 100644 --- a/js/index.js +++ b/js/index.js @@ -13,9 +13,9 @@ import DetailsOfUse from './components/forms/details_of_use' import poc from './components/forms/poc' import financial from './components/forms/financial' import toggler from './components/toggler' -import NewProject from './components/forms/new_project' +import NewApplication from './components/forms/new_application' import EditEnvironmentRole from './components/forms/edit_environment_role' -import EditProjectRoles from './components/forms/edit_project_roles' +import EditApplicationRoles from './components/forms/edit_application_roles' import funding from './components/forms/funding' import Modal from './mixins/modal' import selector from './components/selector' @@ -44,7 +44,7 @@ const app = new Vue({ DetailsOfUse, poc, financial, - NewProject, + NewApplication, selector, BudgetChart, SpendTable, @@ -52,7 +52,7 @@ const app = new Vue({ MembersList, LocalDatetime, EditEnvironmentRole, - EditProjectRoles, + EditApplicationRoles, RequestsList, ConfirmationPopover, funding, diff --git a/js/lib/input_validations.js b/js/lib/input_validations.js index 1838848e..81071d2a 100644 --- a/js/lib/input_validations.js +++ b/js/lib/input_validations.js @@ -83,10 +83,10 @@ export default { unmask: [], validationError: 'Please enter a valid BA Code. Note that it should be two digits, followed by an optional letter.' }, - workspaceName: { + portfolioName: { mask: false, match: /^.{4,100}$/, unmask: [], - validationError: 'Workspace and request names must be at least 4 and not more than 100 characters' + validationError: 'Portfolio and request names must be at least 4 and not more than 100 characters' }, } diff --git a/script/remove_sample_data.py b/script/remove_sample_data.py index ca52c83e..becde60a 100644 --- a/script/remove_sample_data.py +++ b/script/remove_sample_data.py @@ -1,4 +1,4 @@ -# Add root project dir to the python path +# Add root application dir to the python path import os import sys @@ -15,14 +15,14 @@ from atst.app import make_config, make_app from atst.models.audit_event import AuditEvent from atst.models.environment import Environment from atst.models.environment_role import EnvironmentRole -from atst.models.project import Project +from atst.models.application import Application from atst.models.request import Request from atst.models.request_revision import RequestRevision from atst.models.request_status_event import RequestStatus, RequestStatusEvent from atst.models.role import Role from atst.models.user import User -from atst.models.workspace_role import WorkspaceRole -from atst.models.workspace import Workspace +from atst.models.portfolio_role import PortfolioRole +from atst.models.portfolio import Portfolio from atst.models.mixins import AuditableMixin from atst.domain.environments import Environments @@ -30,7 +30,7 @@ from atst.domain.exceptions import NotFoundError from atst.domain.csp.reports import MockReportingProvider from atst.domain.requests import Requests from atst.domain.users import Users -from atst.domain.workspaces import Workspaces +from atst.domain.portfolios import portfolios from tests.factories import RequestFactory, LegacyTaskOrderFactory @@ -48,29 +48,29 @@ dod_ids = [ ] -def create_demo_workspace(name, data): +def create_demo_portfolio(name, data): try: - workspace_owner = Users.get_by_dod_id("678678678") # Other + portfolio_owner = Users.get_by_dod_id("678678678") # Other auditor = Users.get_by_dod_id("3453453453") # Sally except NotFoundError: - print("Could not find demo users; will not create demo workspace {}".format(name)) + print("Could not find demo users; will not create demo portfolio {}".format(name)) return - request = RequestFactory.build(creator=workspace_owner) + request = RequestFactory.build(creator=portfolio_owner) request.legacy_task_order = LegacyTaskOrderFactory.build() request = Requests.update( request.id, {"financial_verification": RequestFactory.mock_financial_data()} ) approved_request = Requests.set_status(request, RequestStatus.APPROVED) - workspace = Requests.approve_and_create_workspace(request) - Workspaces.update(workspace, { "name": name }) + portfolio = Requests.approve_and_create_portfolio(request) + portfolios.update(portfolio, { "name": name }) - for mock_project in data["projects"]: - project = Project(workspace=workspace, name=mock_project.name, description='') - env_names = [env.name for env in mock_project.environments] - envs = Environments.create_many(project, env_names) - db.session.add(project) + for mock_application in data["applications"]: + application = application(portfolio=portfolio, name=mock_application.name, description='') + env_names = [env.name for env in mock_application.environments] + envs = Environments.create_many(application, env_names) + db.session.add(application) db.session.commit() @@ -103,18 +103,18 @@ def remove_sample_data(all_users=False): ) events = [ev for r in requests for ev in r.status_events] revisions = [rev for r in requests for rev in r.revisions] - workspaces = [r.workspace for r in requests if r.workspace] + portfolios = [r.portfolio for r in requests if r.portfolio] ws_audit = ( db.session.query(AuditEvent) - .filter(AuditEvent.workspace_id.in_([w.id for w in workspaces])) + .filter(AuditEvent.portfolio_id.in_([w.id for w in portfolios])) .all() ) - workspace_roles = [role for workspace in workspaces for role in workspace.roles] - invites = [invite for role in workspace_roles for invite in role.invitations] - projects = [p for workspace in workspaces for p in workspace.projects] + portfolio_roles = [role for portfolio in portfolios for role in portfolio.roles] + invites = [invite for role in portfolio_roles for invite in role.invitations] + applications = [p for portfolio in portfolios for p in portfolio.applications] environments = ( db.session.query(Environment) - .filter(Environment.project_id.in_([p.id for p in projects])) + .filter(Environment.application_id.in_([p.id for p in applications])) .all() ) roles = [role for env in environments for role in env.roles] @@ -122,9 +122,9 @@ def remove_sample_data(all_users=False): for set_of_things in [ roles, environments, - projects, + applications, invites, - workspace_roles, + portfolio_roles, ws_audit, events, revisions, @@ -135,9 +135,9 @@ def remove_sample_data(all_users=False): db.session.commit() - query = "DELETE FROM workspaces WHERE workspaces.id = ANY(:ids);" + query = "DELETE FROM portfolios WHERE portfolios.id = ANY(:ids);" db.session.connection().execute( - sqlalchemy.text(query), ids=[w.id for w in workspaces] + sqlalchemy.text(query), ids=[w.id for w in portfolios] ) query = "DELETE FROM requests WHERE requests.id = ANY(:ids);" @@ -153,5 +153,5 @@ if __name__ == "__main__": app = make_app(config) with app.app_context(): remove_sample_data() - create_demo_workspace('Aardvark', MockReportingProvider.REPORT_FIXTURE_MAP["Aardvark"]) - create_demo_workspace('Beluga', MockReportingProvider.REPORT_FIXTURE_MAP["Beluga"]) + create_demo_portfolio('Aardvark', MockReportingProvider.REPORT_FIXTURE_MAP["Aardvark"]) + create_demo_portfolio('Beluga', MockReportingProvider.REPORT_FIXTURE_MAP["Beluga"]) diff --git a/script/seed_roles.py b/script/seed_roles.py index cfe0337f..508f9c62 100755 --- a/script/seed_roles.py +++ b/script/seed_roles.py @@ -10,11 +10,11 @@ from sqlalchemy.orm.exc import NoResultFound from atst.app import make_config, make_app from atst.database import db from atst.models import Role, Permissions -from atst.domain.roles import ATAT_ROLES, WORKSPACE_ROLES +from atst.domain.roles import ATAT_ROLES, PORTFOLIO_ROLES def seed_roles(): - for role_info in ATAT_ROLES + WORKSPACE_ROLES: + for role_info in ATAT_ROLES + PORTFOLIO_ROLES: role = Role(**role_info) try: existing_role = db.session.query(Role).filter_by(name=role.name).one() diff --git a/script/seed_sample.py b/script/seed_sample.py index 8d62759a..3876f07a 100644 --- a/script/seed_sample.py +++ b/script/seed_sample.py @@ -1,4 +1,4 @@ -# Add root project dir to the python path +# Add root application dir to the python path import os import sys @@ -9,44 +9,44 @@ from atst.database import db from atst.app import make_config, make_app from atst.domain.users import Users from atst.domain.requests import Requests -from atst.domain.workspaces import Workspaces -from atst.domain.projects import Projects -from atst.domain.workspace_roles import WorkspaceRoles +from atst.domain.portfolios import Portfolios +from atst.domain.applications import Applications +from atst.domain.portfolio_roles import PortfolioRoles from atst.models.invitation import Status as InvitationStatus from atst.domain.exceptions import AlreadyExistsError from tests.factories import RequestFactory, LegacyTaskOrderFactory, InvitationFactory from atst.routes.dev import _DEV_USERS as DEV_USERS -WORKSPACE_USERS = [ +portfolio_USERS = [ { "first_name": "Danny", "last_name": "Knight", "email": "knight@mil.gov", - "workspace_role": "developer", + "portfolio_role": "developer", "dod_id": "0000000001", }, { "first_name": "Mario", "last_name": "Hudson", "email": "hudson@mil.gov", - "workspace_role": "billing_auditor", + "portfolio_role": "billing_auditor", "dod_id": "0000000002", }, { "first_name": "Louise", "last_name": "Greer", "email": "greer@mil.gov", - "workspace_role": "admin", + "portfolio_role": "admin", "dod_id": "0000000003", }, ] -WORKSPACE_INVITED_USERS = [ +PORTFOLIO_INVITED_USERS = [ { "first_name": "Frederick", "last_name": "Fitzgerald", "email": "frederick@mil.gov", - "workspace_role": "developer", + "portfolio_role": "developer", "dod_id": "0000000004", "status": InvitationStatus.REJECTED_WRONG_USER }, @@ -54,7 +54,7 @@ WORKSPACE_INVITED_USERS = [ "first_name": "Gina", "last_name": "Guzman", "email": "gina@mil.gov", - "workspace_role": "developer", + "portfolio_role": "developer", "dod_id": "0000000005", "status": InvitationStatus.REJECTED_EXPIRED }, @@ -62,7 +62,7 @@ WORKSPACE_INVITED_USERS = [ "first_name": "Hector", "last_name": "Harper", "email": "hector@mil.gov", - "workspace_role": "developer", + "portfolio_role": "developer", "dod_id": "0000000006", "status": InvitationStatus.REVOKED }, @@ -70,7 +70,7 @@ WORKSPACE_INVITED_USERS = [ "first_name": "Isabella", "last_name": "Ingram", "email": "isabella@mil.gov", - "workspace_role": "developer", + "portfolio_role": "developer", "dod_id": "0000000007", "status": InvitationStatus.PENDING }, @@ -107,26 +107,26 @@ def seed_db(): request.id, {"financial_verification": RequestFactory.mock_financial_data()} ) - workspace = Workspaces.create( - user, name="{}'s workspace".format(user.first_name) + portfolio = Portfolios.create( + user, name="{}'s portfolio".format(user.first_name) ) - for workspace_role in WORKSPACE_USERS: - ws_role = Workspaces.create_member(user, workspace, workspace_role) + for portfolio_role in portfolio_USERS: + ws_role = Portfolios.create_member(user, portfolio, portfolio_role) db.session.refresh(ws_role) - WorkspaceRoles.enable(ws_role) + PortfolioRoles.enable(ws_role) - for workspace_role in WORKSPACE_INVITED_USERS: - ws_role = Workspaces.create_member(user, workspace, workspace_role) - invitation = InvitationFactory.build(workspace_role=ws_role, status=workspace_role["status"]) + for portfolio_role in PORTFOLIO_INVITED_USERS: + ws_role = Portfolios.create_member(user, portfolio, portfolio_role) + invitation = InvitationFactory.build(portfolio_role=ws_role, status=portfolio_role["status"]) db.session.add(invitation) db.session.commit() - Projects.create( + Applications.create( user, - workspace=workspace, - name="First Project", - description="This is our first project.", + portfolio=portfolio, + name="First Application", + description="This is our first application.", environment_names=["dev", "staging", "prod"], ) diff --git a/styles/atat.scss b/styles/atat.scss index 37389c5e..63889846 100644 --- a/styles/atat.scss +++ b/styles/atat.scss @@ -25,7 +25,7 @@ @import 'components/topbar'; @import 'components/global_layout'; @import 'components/global_navigation'; -@import 'components/workspace_layout'; +@import 'components/portfolio_layout'; @import 'components/site_action'; @import 'components/empty_state'; @import 'components/alerts'; @@ -42,8 +42,8 @@ @import 'sections/login'; @import 'sections/home'; @import 'sections/request_approval'; -@import 'sections/projects_list'; -@import 'sections/project_edit'; +@import 'sections/application_list'; +@import 'sections/application_edit'; @import 'sections/member_edit'; @import 'sections/reports'; @import 'sections/task_order'; diff --git a/styles/components/_global_navigation.scss b/styles/components/_global_navigation.scss index b975270a..bdc3f47e 100644 --- a/styles/components/_global_navigation.scss +++ b/styles/components/_global_navigation.scss @@ -18,7 +18,7 @@ } } - &.global-navigation__context--workspace { + &.global-navigation__context--portfolio { .sidenav__link { padding-right: $gap; } diff --git a/styles/components/_workspace_layout.scss b/styles/components/_portfolio_layout.scss similarity index 88% rename from styles/components/_workspace_layout.scss rename to styles/components/_portfolio_layout.scss index cf6e79bd..62938d35 100644 --- a/styles/components/_workspace_layout.scss +++ b/styles/components/_portfolio_layout.scss @@ -1,10 +1,10 @@ -.workspace-panel-container { +.portfolio-panel-container { @include media($large-screen) { @include grid-row; } } -.workspace-navigation { +.portfolio-navigation { @include panel-margin; margin-bottom: $gap * 4; diff --git a/styles/components/_site_action.scss b/styles/components/_site_action.scss index 98af0b18..7b42a4ec 100644 --- a/styles/components/_site_action.scss +++ b/styles/components/_site_action.scss @@ -12,4 +12,4 @@ color: $color-primary !important; } -} \ No newline at end of file +} diff --git a/styles/components/_topbar.scss b/styles/components/_topbar.scss index 4af39785..54424924 100644 --- a/styles/components/_topbar.scss +++ b/styles/components/_topbar.scss @@ -59,11 +59,11 @@ align-items: stretch; justify-content: flex-end; - .topbar__workspace-menu { + .topbar__portfolio-menu { margin-right: auto; position: relative; - .topbar__workspace-menu__toggle { + .topbar__portfolio-menu__toggle { margin: 0; border-radius: 0; @@ -89,12 +89,12 @@ } } - .topbar__workspace-menu__panel { + .topbar__portfolio-menu__panel { position: absolute; } } - &.topbar__context--workspace { + &.topbar__context--portfolio { background-color: $color-primary; -ms-flex-pack: start; diff --git a/styles/elements/_inputs.scss b/styles/elements/_inputs.scss index 418fde41..d8170780 100644 --- a/styles/elements/_inputs.scss +++ b/styles/elements/_inputs.scss @@ -207,7 +207,7 @@ &--validation { &--anything, - &--workspaceName, + &--portfolioName, &--requiredField, &--email { input { diff --git a/styles/elements/_kpi.scss b/styles/elements/_kpi.scss index f68fe30c..05c2ff78 100644 --- a/styles/elements/_kpi.scss +++ b/styles/elements/_kpi.scss @@ -22,4 +22,4 @@ padding-bottom: $gap / 2; } -} \ No newline at end of file +} diff --git a/styles/sections/_project_edit.scss b/styles/sections/_application_edit.scss similarity index 79% rename from styles/sections/_project_edit.scss rename to styles/sections/_application_edit.scss index ef1bc39a..ce05522f 100644 --- a/styles/sections/_project_edit.scss +++ b/styles/sections/_application_edit.scss @@ -1,4 +1,4 @@ -.project-edit__env-list-item { +.application-edit__env-list-item { display: flex; flex-direction: row; align-items: flex-end; @@ -8,7 +8,7 @@ flex-grow: 1; } - .project-edit__env-list-item__remover { + .application-edit__env-list-item__remover { @include icon-link; @include icon-link-vertical; @include icon-link-color($color-red, $color-red-lightest); diff --git a/styles/sections/_projects_list.scss b/styles/sections/_application_list.scss similarity index 65% rename from styles/sections/_projects_list.scss rename to styles/sections/_application_list.scss index e48bb7af..0294d646 100644 --- a/styles/sections/_projects_list.scss +++ b/styles/sections/_application_list.scss @@ -1,5 +1,5 @@ -.project-list-item { - .project-list-item__environment { +.application-list-item { + .application-list-item__environment { display: flex; flex-direction: row; justify-content: space-between; @@ -8,12 +8,12 @@ margin: 0; } - .project-list-item__environment__link { + .application-list-item__environment__link { @include icon-link; @include icon-link-large; } - .project-list-item__environment__members { + .application-list-item__environment__members { display: flex; flex-direction: row; align-items: center; diff --git a/styles/sections/_home.scss b/styles/sections/_home.scss index 176c197a..9098b268 100644 --- a/styles/sections/_home.scss +++ b/styles/sections/_home.scss @@ -67,4 +67,4 @@ } } -} \ No newline at end of file +} diff --git a/styles/sections/_reports.scss b/styles/sections/_reports.scss index 39abad06..8f2d5fd5 100644 --- a/styles/sections/_reports.scss +++ b/styles/sections/_reports.scss @@ -283,14 +283,14 @@ } } - .spend-table__workspace { + .spend-table__portfolio { th, td { font-weight: bold; } } - .spend-table__project { - .spend-table__project__toggler { + .spend-table__application { + .spend-table__application__toggler { @include icon-link-color($color-black-light, $color-gray-lightest); margin-left: -$gap; @@ -300,7 +300,7 @@ } } - .spend-table__project__env { + .spend-table__application__env { margin-left: $gap; &:last-child { diff --git a/templates/about.html b/templates/about.html index 083d9cc1..b7ebce79 100644 --- a/templates/about.html +++ b/templates/about.html @@ -38,8 +38,8 @@After your Task Order is approved you must add that information to your JEDI Cloud Access Request for financial verification.
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.
+Once your JEDI Cloud Access Request is approved by the CCPO the portfolio owner will need to set up applications, environments, and users. The portfolio owner is the technical POC you originally designated on the request.
{{ event.workspace_id }}
({{ event.workspace.name }})
+ in Portfolio {{ event.portfolio_id }}
({{ event.portfolio.name }})
{% endblock %}
diff --git a/templates/audit_log/events/environment_role.html b/templates/audit_log/events/environment_role.html
index cca9a4d7..e692b1e6 100644
--- a/templates/audit_log/events/environment_role.html
+++ b/templates/audit_log/events/environment_role.html
@@ -12,8 +12,8 @@
{{ event.event_details["environment_id"] }}
({{ event.event_details["environment"] }})
{{ event.event_details["project_id"] }}
({{ event.event_details["project"] }})
+ in Application {{ event.event_details["application_id"] }}
({{ event.event_details["application"] }})
{{ event.event_details["workspace_id"] }}
({{ event.event_details["workspace"] }})
+ in Portfolio {{ event.event_details["portfolio_id"] }}
({{ event.event_details["portfolio"] }})
{% endif %}
{% endblock %}
diff --git a/templates/audit_log/events/invitation.html b/templates/audit_log/events/invitation.html
index 6b77d274..2b0b0fd9 100644
--- a/templates/audit_log/events/invitation.html
+++ b/templates/audit_log/events/invitation.html
@@ -10,5 +10,5 @@
invited {{ event.event_details.email }} (DOD {{ event.event_details.dod_id }}
)
{{ event.workspace_id }}
({{ event.workspace.name }})
+ in Portfolio {{ event.portfolio_id }}
({{ event.portfolio.name }})
{% endblock %}
diff --git a/templates/audit_log/events/workspace.html b/templates/audit_log/events/portfolio.html
similarity index 100%
rename from templates/audit_log/events/workspace.html
rename to templates/audit_log/events/portfolio.html
diff --git a/templates/audit_log/events/workspace_role.html b/templates/audit_log/events/portfolio_role.html
similarity index 85%
rename from templates/audit_log/events/workspace_role.html
rename to templates/audit_log/events/portfolio_role.html
index 38a22720..11bdad10 100644
--- a/templates/audit_log/events/workspace_role.html
+++ b/templates/audit_log/events/portfolio_role.html
@@ -2,7 +2,7 @@
{% block content %}
for User {{ event.event_details.updated_user_id }}
({{ event.event_details.updated_user_name }})
- in Workspace {{ event.workspace_id }}
({{ event.workspace.name }})
+ in Portfolio {{ event.portfolio_id }}
({{ event.portfolio.name }})
{% if event.changed_state.status %}
from status "{{ event.changed_state.status[0] }}" to "{{ event.changed_state.status[1] }}"
diff --git a/templates/components/pagination.html b/templates/components/pagination.html
index d7674d66..a44dcb77 100644
--- a/templates/components/pagination.html
+++ b/templates/components/pagination.html
@@ -1,4 +1,4 @@
-{% macro Page(pagination, route, i, label=None, disabled=False, workspace_id=None) -%}
+{% macro Page(pagination, route, i, label=None, disabled=False, portfolio_id=None) -%}
{% set label = label or i %}
{% set button_class = "page usa-button " %}
@@ -11,42 +11,42 @@
{% set button_class = button_class + "usa-button-secondary" %}
{% endif %}
- {{ label }}
+ {{ label }}
{%- endmacro %}
-{% macro Pagination(pagination, route, workspace_id=None) -%}
+{% macro Pagination(pagination, route, portfolio_id=None) -%}
- {{ "fragments.edit_project_form.explain" | translate }} + {{ "fragments.edit_application_form.explain" | translate }}
{{ TextInput(form.name) }} {{ TextInput(form.description, paragraph=True) }} diff --git a/templates/help/docs/getting-started.html b/templates/help/docs/getting-started.html index 355e4974..deb9b935 100644 --- a/templates/help/docs/getting-started.html +++ b/templates/help/docs/getting-started.html @@ -3,7 +3,7 @@ {% set subnav = [ {"label":"Financial Verification", "href":"#financial-verification"}, {"label":"ID/IQ CLINs", "href":"#idiq-clins"}, - {"label":"JEDI Cloud Projects", "href":"#jedi-cloud-projects"}, + {"label":"JEDI Cloud Applications", "href":"#jedi-cloud-applications"}, ] %} {% block doc_content %} @@ -63,7 +63,7 @@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.
+Separate your portfolio into applications and environments; this allows your team to manage user access to systems more securely and track expenditures for each application.
Here’s an example:
-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.