diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index 9f8580997..cb6d1ed5f 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -635,6 +635,15 @@ def service_set_auth_type(service_id): ) +@main.route("/services//service-settings/set-basic-view", methods=['GET']) +@login_required +@user_has_permissions('manage_service') +def service_set_basic_view(service_id): + return render_template( + 'views/service-settings/set-basic-view.html', + ) + + @main.route("/services//service-settings/letter-contacts", methods=['GET']) @login_required @user_has_permissions('manage_service', 'manage_api_keys') diff --git a/app/navigation.py b/app/navigation.py index 056d66110..c71237ad5 100644 --- a/app/navigation.py +++ b/app/navigation.py @@ -212,6 +212,7 @@ class HeaderNavigation(Navigation): 'service_name_change', 'service_name_change_confirm', 'service_set_auth_type', + 'service_set_basic_view', 'service_set_contact_link', 'service_set_email', 'service_set_email_branding', @@ -331,6 +332,7 @@ class MainNavigation(Navigation): 'service_name_change', 'service_name_change_confirm', 'service_set_auth_type', + 'service_set_basic_view', 'service_set_contact_link', 'service_set_email', 'service_set_email_branding', @@ -638,6 +640,7 @@ class CaseworkNavigation(Navigation): 'service_name_change', 'service_name_change_confirm', 'service_set_auth_type', + 'service_set_basic_view', 'service_set_contact_link', 'service_set_email', 'service_set_email_branding', @@ -859,6 +862,7 @@ class OrgNavigation(Navigation): 'service_name_change', 'service_name_change_confirm', 'service_set_auth_type', + 'service_set_basic_view', 'service_set_contact_link', 'service_set_email', 'service_set_email_branding', diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index 22b9667fd..cc27cc59d 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -46,6 +46,18 @@ }} {% endcall %} + {% call settings_row(if_has_permission='caseworking') %} + {{ text_field('Basic view') }} + {{ boolean_field('caseworking' in current_service.permissions) }} + {{ edit_field( + 'Change', + url_for('.service_set_basic_view', + service_id=current_service.id), + permissions=['manage_service'] + ) + }} + {% endcall %} + {% call settings_row(if_has_permission='upload_document') %} {{ text_field('Contact link') }} {{ text_field(current_service.contact_link, truncate=true) }} diff --git a/app/templates/views/service-settings/set-basic-view.html b/app/templates/views/service-settings/set-basic-view.html new file mode 100644 index 000000000..7f5c6fd68 --- /dev/null +++ b/app/templates/views/service-settings/set-basic-view.html @@ -0,0 +1,31 @@ +{% extends "withnav_template.html" %} +{% from "components/textbox.html" import textbox %} +{% from "components/page-footer.html" import page_footer %} + +{% block service_page_title %} + Basic view +{% endblock %} + +{% block maincolumn_content %} + +
+
+

Basic view

+

+ Basic view lets you restrict a team member to only: +

+
    +
  • send messages
  • +
  • see sent messages
  • +
+

+ You’ll get to choose which team members have basic view. +

+ {{ page_footer( + back_link=url_for('.service_settings', service_id=current_service.id), + back_link_text='Back to settings' + ) }} +
+
+ +{% endblock %} diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index a9cf5e1d7..c9662edbf 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -170,6 +170,22 @@ def test_should_show_overview( 'Send letters Off Change', ]), + (['letters', 'caseworking'], [ + + 'Service name service one Change', + 'Sign-in method Text message code Change', + 'Basic view On Change', + + 'Label Value Action', + 'Send emails Off Change', + + 'Label Value Action', + 'Send text messages Off Change', + + 'Label Value Action', + 'Send letters Off Change', + + ]), ]) def test_should_show_overview_for_service_with_more_things_set( client, @@ -2374,6 +2390,16 @@ def test_invitation_pages( assert normalize_spaces(page.select('main p')[0].text) == expected_p +def test_see_basic_view_page( + client_request, +): + page = client_request.get( + "main.service_set_basic_view", + service_id=SERVICE_ONE_ID + ) + assert page.h1.text.strip() == 'Basic view' + + def test_service_settings_when_inbound_number_is_not_set( logged_in_client, service_one,