diff --git a/app/__init__.py b/app/__init__.py
index 4e53bbb76..24091e2c2 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -88,6 +88,7 @@ from app.navigation import (
HeaderNavigation,
MainNavigation,
OrgNavigation,
+ SecondaryNavigation,
)
from app.notify_client import InviteTokenError
from app.notify_client.api_key_api_client import api_key_api_client
@@ -128,6 +129,7 @@ navigation = {
"main_navigation": MainNavigation(),
"header_navigation": HeaderNavigation(),
"org_navigation": OrgNavigation(),
+ "secondary_navigation": SecondaryNavigation(),
}
diff --git a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss
index 3c58fdd11..832230a44 100644
--- a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss
+++ b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss
@@ -39,6 +39,9 @@ i.e.
.usa-nav__secondary {
.usa-nav__link {
padding: 0;
+ &.usa-current {
+ text-decoration: underline;
+ }
}
}
}
@@ -240,7 +243,7 @@ td.table-empty-message {
}
.navigation-service.usa-breadcrumb {
- -bottom: 0;
+ bottom: 0;
}
// Dashboard
diff --git a/app/navigation.py b/app/navigation.py
index e824d6de2..94f970540 100644
--- a/app/navigation.py
+++ b/app/navigation.py
@@ -87,39 +87,7 @@ class HeaderNavigation(Navigation):
"uploads",
"view_job",
"view_jobs",
- "confirm_edit_user_email",
- "confirm_edit_user_mobile_number",
- "edit_user_email",
- "edit_user_mobile_number",
- "edit_user_permissions",
- "invite_user",
- "manage_users",
- "remove_user_from_service",
"usage",
- "link_service_to_organization",
- "service_add_email_reply_to",
- "service_add_sms_sender",
- "service_confirm_delete_email_reply_to",
- "service_confirm_delete_sms_sender",
- "service_edit_email_reply_to",
- "service_edit_sms_sender",
- "service_email_reply_to",
- "service_name_change",
- "service_set_auth_type",
- "service_set_channel",
- "send_files_by_email_contact_details",
- "service_set_inbound_number",
- "service_set_inbound_sms",
- "service_set_international_sms",
- "service_set_reply_to_email",
- "service_set_sms_prefix",
- "service_verify_reply_to_address",
- "service_verify_reply_to_address_updates",
- "service_settings",
- "service_sms_senders",
- "set_free_sms_allowance",
- "set_message_limit",
- "set_rate_limit",
},
"pricing": {
"how_to_pay",
@@ -236,6 +204,21 @@ class MainNavigation(Navigation):
"usage": {
"usage",
},
+ "user-profile": {
+ "user_profile",
+ "user_profile_confirm_delete_mobile_number",
+ "user_profile_email",
+ "user_profile_email_authenticate",
+ "user_profile_email_confirm",
+ "user_profile_mobile_number",
+ "user_profile_mobile_number_authenticate",
+ "user_profile_mobile_number_confirm",
+ "user_profile_mobile_number_delete",
+ "user_profile_name",
+ "user_profile_password",
+ "user_profile_preferred_timezone",
+ "user_profile_disable_platform_admin_view",
+ },
"settings": {
"link_service_to_organization",
"service_add_email_reply_to",
@@ -297,6 +280,58 @@ class CaseworkNavigation(Navigation):
}
+class SecondaryNavigation(Navigation):
+ mapping = {
+ "settings": {
+ "link_service_to_organization",
+ "service_add_email_reply_to",
+ "service_add_sms_sender",
+ "service_confirm_delete_email_reply_to",
+ "service_confirm_delete_sms_sender",
+ "service_edit_email_reply_to",
+ "service_edit_sms_sender",
+ "service_email_reply_to",
+ "service_name_change",
+ "service_set_auth_type",
+ "service_set_channel",
+ "send_files_by_email_contact_details",
+ "service_set_inbound_number",
+ "service_set_inbound_sms",
+ "service_set_international_sms",
+ "service_set_reply_to_email",
+ "service_set_sms_prefix",
+ "service_verify_reply_to_address",
+ "service_verify_reply_to_address_updates",
+ "service_settings",
+ "service_sms_senders",
+ "set_free_sms_allowance",
+ "set_message_limit",
+ "set_rate_limit",
+ "confirm_edit_user_email",
+ "confirm_edit_user_mobile_number",
+ "edit_user_email",
+ "edit_user_mobile_number",
+ "edit_user_permissions",
+ "invite_user",
+ "manage_users",
+ "remove_user_from_service",
+ "user_profile",
+ "user_profile_confirm_delete_mobile_number",
+ "user_profile_email",
+ "user_profile_email_authenticate",
+ "user_profile_email_confirm",
+ "user_profile_mobile_number",
+ "user_profile_mobile_number_authenticate",
+ "user_profile_mobile_number_confirm",
+ "user_profile_mobile_number_delete",
+ "user_profile_name",
+ "user_profile_password",
+ "user_profile_preferred_timezone",
+ "user_profile_disable_platform_admin_view",
+ },
+ }
+
+
class OrgNavigation(Navigation):
mapping = {
"dashboard": {
diff --git a/app/templates/admin_template.html b/app/templates/admin_template.html
index 0feae28e7..c858fb59e 100644
--- a/app/templates/admin_template.html
+++ b/app/templates/admin_template.html
@@ -69,21 +69,26 @@
"active": header_navigation.is_selected('support')
}
] %}
- {% set secondaryNavigation = [
- {
- "href": url_for('main.user_profile'),
- "text": current_user.name,
- "active": header_navigation.is_selected('user-profile')
- },
- {
- "href": url_for('.service_settings', service_id=current_service.id),
- "text": "Settings"
- },
- {
- "href": url_for('main.sign_out'),
- "text": "Sign out"
- }
+ {% if current_service %}
+ {% set secondaryNavigation = [
+ {
+ "href": url_for('.service_settings', service_id=current_service.id),
+ "text": "Settings",
+ "active": secondary_navigation.is_selected('settings')
+ },
+ {
+ "href": url_for('main.sign_out'),
+ "text": "Sign out"
+ }
] %}
+ {% else %}
+ {% set secondaryNavigation = [
+ {
+ "href": url_for('main.sign_out'),
+ "text": "Sign out"
+ }
+ ] %}
+ {% endif %}
{% else %}
{% set navigation = [
{
@@ -114,13 +119,13 @@
] %}
{% set secondaryNavigation = [
{
- "href": url_for('main.user_profile'),
- "text": current_user.name,
- "active": header_navigation.is_selected('user-profile')
+ "href": url_for('.service_settings', service_id=current_service.id),
+ "text": "Settings",
+ "active": secondary_navigation.is_selected('settings')
},
{
- "href": url_for('main.sign_out'),
- "text": "Sign out"
+ "href": url_for('main.sign_out'),
+ "text": "Sign out"
}
] %}
{% endif %}
diff --git a/app/templates/components/components/header/template.njk b/app/templates/components/components/header/template.njk
index f32df0cd9..6cc8cabd8 100644
--- a/app/templates/components/components/header/template.njk
+++ b/app/templates/components/components/header/template.njk
@@ -88,11 +88,6 @@
{% endif %}
{% endfor %}
-
-
Team members
- {% endif %}
+
{% endif %}
diff --git a/app/templates/settings_template.html b/app/templates/settings_template.html
new file mode 100644
index 000000000..4e956e811
--- /dev/null
+++ b/app/templates/settings_template.html
@@ -0,0 +1,34 @@
+{% extends "admin_template.html" %}
+
+{% block per_page_title %}
+ {% block service_page_title %}{% endblock %} – {{ current_service.name }}
+{% endblock %}
+
+{% block main %}
+
+
+ {% if help %}
+
+ {% else %}
+
+ {% endif %}
+ {% include "settings_nav.html" %}
+
+ {% if help %}
+
+ {% else %}
+
+ {% endif %}
+ {% block beforeContent %}
+ {% block backLink %}{% endblock %}
+ {% endblock %}
+
+ {% block content %}
+ {% include 'flash_messages.html' %}
+ {% block maincolumn_content %}{% endblock %}
+ {% endblock %}
+
+
+
+
+{% endblock %}
diff --git a/app/templates/views/manage-users.html b/app/templates/views/manage-users.html
index cab732a47..761a1a213 100644
--- a/app/templates/views/manage-users.html
+++ b/app/templates/views/manage-users.html
@@ -1,4 +1,4 @@
-{% extends "withnav_template.html" %}
+{% extends "settings_template.html" %}
{% from "components/tick-cross.html" import tick_cross %}
{% from "components/live-search.html" import live_search %}
{% from "components/components/button/macro.njk" import usaButton %}
@@ -9,8 +9,8 @@
{% block maincolumn_content %}
-
-
+
+
Team members
{% if current_user.has_permissions('manage_service') %}
diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html
index 0bb3da6e4..b13e90144 100644
--- a/app/templates/views/service-settings.html
+++ b/app/templates/views/service-settings.html
@@ -1,4 +1,4 @@
-{% extends "withnav_template.html" %}
+{% extends "settings_template.html" %}
{% from "components/banner.html" import banner_wrapper %}
{% from "components/table.html" import mapping_table, row, settings_row, text_field, optional_text_field, edit_field, field, boolean_field with context %}
diff --git a/app/templates/views/user-profile.html b/app/templates/views/user-profile.html
index 876a14280..d3e6ff7c8 100644
--- a/app/templates/views/user-profile.html
+++ b/app/templates/views/user-profile.html
@@ -1,4 +1,4 @@
-{% extends "withoutnav_template.html" %}
+{% extends "settings_template.html" %}
{% from "components/table.html" import list_table, row, field %}
{% from "components/table.html" import mapping_table, row, text_field, optional_text_field, edit_field, field, boolean_field with context %}
diff --git a/docs/sprint-goals.md b/docs/sprint-goals.md
index 598305e0e..cfae21996 100644
--- a/docs/sprint-goals.md
+++ b/docs/sprint-goals.md
@@ -1,8 +1,18 @@
# Notify Sprint Goals Log
-## Sprint: Y (12/6/23)
-(Sprint X was canceled due to Thanksgiving)
+## Sprint: Z (12/21/23)
+
+| | Goals | Impact | Milestone(s) |
+|-------------|-----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|--------------|
+| Engineering | Spend time [identifying](https://github.com/GSA/notifications-api/issues/656), [fixing](https://github.com/GSA/notifications-api/issues/645), and [displaying](https://github.com/GSA/notifications-admin/issues/964) various applicable message part limits, devise ways to [create better access to reports](https://github.com/GSA/notifications-admin/issues/855), implement Login.gov on staging environment, advance epic to [remove phone numbers from db](https://github.com/GSA/notifications-api/issues/667) | Better track annual and smart-retention limits, install required auth, make reports easier to find, expand message send volume for partners | Building Notify.gov |
+| UX | [Re-think Notify IA](https://github.com/GSA/notifications-admin/issues/910), start implementing dashboard changes, improve [team member section](https://github.com/GSA/notifications-admin/issues/1031)| Improve UX | Building Notify.gov|
+| Security | Complete necessary control families | Aim to have package completed with enough time to allow for long assessment| Secure ATO |
+| Content | Make content [more clear about limits](https://github.com/GSA/notifications-admin/issues/963), make content clearer by [adding `parts` where necessary](https://github.com/GSA/notifications-admin/issues/963), test making [editing content easier](https://github.com/GSA/notifications-admin/issues/976) with existing templates | Improve clarity of message parts for users, streamline content editing for the team| Building Notify.gov |
+| Ops | Assist in Tech to Gov process | |
+
+## Sprint: Xingu Scale-Backed Antbird (12/6/23)
+(Sprint X was canceled due to Thanksgiving, so this is X & Y)
| | Goals | Impact | Milestone(s) |
|-------------|-----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|--------------|
diff --git a/tests/app/main/test_permissions.py b/tests/app/main/test_permissions.py
index fea2c2fb5..2843407ba 100644
--- a/tests/app/main/test_permissions.py
+++ b/tests/app/main/test_permissions.py
@@ -135,7 +135,6 @@ def test_service_navigation_for_org_user(
"Send messages",
"Sent messages",
"Team members",
- "Usage",
),
200,
),
diff --git a/tests/app/test_navigation.py b/tests/app/test_navigation.py
index b139eb9be..110bae914 100644
--- a/tests/app/test_navigation.py
+++ b/tests/app/test_navigation.py
@@ -400,9 +400,9 @@ def test_navigation_urls(
assert [a["href"] for a in page.select(".nav a")] == [
"/services/{}/templates".format(SERVICE_ONE_ID),
"/services/{}".format(SERVICE_ONE_ID),
- "/services/{}/users".format(SERVICE_ONE_ID),
"/services/{}/usage".format(SERVICE_ONE_ID),
- "/services/{}/service-settings".format(SERVICE_ONE_ID),
+ # "/services/{}/users".format(SERVICE_ONE_ID),
+ # "/services/{}/service-settings".format(SERVICE_ONE_ID),
# '/services/{}/api'.format(SERVICE_ONE_ID),
]
@@ -418,7 +418,7 @@ def test_caseworkers_get_caseworking_navigation(
client_request.login(active_caseworking_user)
page = client_request.get("main.choose_template", service_id=SERVICE_ONE_ID)
assert normalize_spaces(page.select_one("header + .grid-container nav").text) == (
- "Send messages Sent messages Team members"
+ "Send messages Sent messages"
)
@@ -433,5 +433,5 @@ def test_caseworkers_see_jobs_nav_if_jobs_exist(
client_request.login(active_caseworking_user)
page = client_request.get("main.choose_template", service_id=SERVICE_ONE_ID)
assert normalize_spaces(page.select_one("header + .grid-container nav").text) == (
- "Send messages Sent messages Team members"
+ "Send messages Sent messages"
)