mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-07 17:28:24 -04:00
Merge pull request #1259 from alphagov/letters-are-a-thing
Tell users that letters are coming
This commit is contained in:
@@ -286,6 +286,15 @@ def service_set_international_sms(service_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@main.route("/services/<service_id>/service-settings/set-letters", methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
@user_has_permissions('manage_settings', admin_override=True)
|
||||||
|
def service_set_letters(service_id):
|
||||||
|
return render_template(
|
||||||
|
'views/service-settings/set-letters.html',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@main.route("/services/<service_id>/service-settings/set-letter-contact-block", methods=['GET', 'POST'])
|
@main.route("/services/<service_id>/service-settings/set-letter-contact-block", methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions('manage_settings', admin_override=True)
|
@user_has_permissions('manage_settings', admin_override=True)
|
||||||
|
|||||||
@@ -39,12 +39,19 @@
|
|||||||
{{ text_field(current_service.sms_sender or '40604') }}
|
{{ text_field(current_service.sms_sender or '40604') }}
|
||||||
{{ edit_field('Change', url_for('.service_set_sms_sender', service_id=current_service.id)) }}
|
{{ edit_field('Change', url_for('.service_set_sms_sender', service_id=current_service.id)) }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
|
|
||||||
{% call row() %}
|
{% call row() %}
|
||||||
{{ text_field('International text messages') }}
|
{{ text_field('International text messages') }}
|
||||||
{{ text_field('On' if current_service.can_send_international_sms else 'Off') }}
|
{{ text_field('On' if current_service.can_send_international_sms else 'Off') }}
|
||||||
{{ edit_field('Change', url_for('.service_set_international_sms', service_id=current_service.id)) }}
|
{{ edit_field('Change', url_for('.service_set_international_sms', service_id=current_service.id)) }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
|
|
||||||
|
{% call row() %}
|
||||||
|
{{ text_field('Letters') }}
|
||||||
|
{{ text_field('On' if current_service.can_send_letters else 'Off') }}
|
||||||
|
{{ edit_field('Change', url_for('.service_set_letters', service_id=current_service.id)) }}
|
||||||
|
{% endcall %}
|
||||||
|
|
||||||
{% if current_service.can_send_letters %}
|
{% if current_service.can_send_letters %}
|
||||||
{% call row() %}
|
{% call row() %}
|
||||||
{{ text_field('Letter contact details') }}
|
{{ text_field('Letter contact details') }}
|
||||||
|
|||||||
38
app/templates/views/service-settings/set-letters.html
Normal file
38
app/templates/views/service-settings/set-letters.html
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{% extends "withnav_template.html" %}
|
||||||
|
{% from "components/textbox.html" import textbox %}
|
||||||
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
|
|
||||||
|
{% block service_page_title %}
|
||||||
|
Text message sender
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block maincolumn_content %}
|
||||||
|
|
||||||
|
<div class="grid-row">
|
||||||
|
<div class="column-five-sixths">
|
||||||
|
<h1 class="heading-large">Letters</h1>
|
||||||
|
{% if current_service.can_send_letters %}
|
||||||
|
<p>
|
||||||
|
Your service can send letters.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you want to stop your sending from sending letters,
|
||||||
|
<a href="{{ url_for('.support') }}">get in touch with the GOV.UK Notify team</a>.
|
||||||
|
</p>
|
||||||
|
{% else %}
|
||||||
|
<p>
|
||||||
|
Using GOV.UK Notify to send letters is an invitation‑only feature.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you want to try it out,
|
||||||
|
<a href="{{ url_for('.support') }}">get in touch with the GOV.UK Notify team</a>.
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{{ page_footer(
|
||||||
|
back_link=url_for('.service_settings', service_id=current_service.id),
|
||||||
|
back_link_text='Back to settings'
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -9,6 +9,7 @@ from werkzeug.exceptions import InternalServerError
|
|||||||
import app
|
import app
|
||||||
from app.utils import email_safe
|
from app.utils import email_safe
|
||||||
from tests import validate_route_permission, service_json
|
from tests import validate_route_permission, service_json
|
||||||
|
from tests.app.test_utils import normalize_spaces
|
||||||
|
|
||||||
from tests.conftest import active_user_with_permissions, platform_admin_user
|
from tests.conftest import active_user_with_permissions, platform_admin_user
|
||||||
|
|
||||||
@@ -20,6 +21,7 @@ from tests.conftest import active_user_with_permissions, platform_admin_user
|
|||||||
'Email reply to address None Change',
|
'Email reply to address None Change',
|
||||||
'Text message sender 40604 Change',
|
'Text message sender 40604 Change',
|
||||||
'International text messages Off Change',
|
'International text messages Off Change',
|
||||||
|
'Letters Off Change',
|
||||||
]),
|
]),
|
||||||
(platform_admin_user, [
|
(platform_admin_user, [
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
@@ -27,6 +29,7 @@ from tests.conftest import active_user_with_permissions, platform_admin_user
|
|||||||
'Email reply to address None Change',
|
'Email reply to address None Change',
|
||||||
'Text message sender 40604 Change',
|
'Text message sender 40604 Change',
|
||||||
'International text messages Off Change',
|
'International text messages Off Change',
|
||||||
|
'Letters Off Change',
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Email branding GOV.UK Change',
|
'Email branding GOV.UK Change',
|
||||||
'Letter branding HM Government Change',
|
'Letter branding HM Government Change',
|
||||||
@@ -73,6 +76,7 @@ def test_should_show_overview_for_service_with_more_things_set(
|
|||||||
'Email reply to address test@example.com Change',
|
'Email reply to address test@example.com Change',
|
||||||
'Text message sender elevenchars Change',
|
'Text message sender elevenchars Change',
|
||||||
'International text messages Off Change',
|
'International text messages Off Change',
|
||||||
|
'Letters Off Change',
|
||||||
]):
|
]):
|
||||||
assert row == " ".join(page.find_all('tr')[index + 1].text.split())
|
assert row == " ".join(page.find_all('tr')[index + 1].text.split())
|
||||||
|
|
||||||
@@ -100,7 +104,7 @@ def test_letter_contact_block_shows_none_if_not_set(
|
|||||||
))
|
))
|
||||||
|
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
div = page.find_all('tr')[5].find_all('td')[1].div
|
div = page.find_all('tr')[6].find_all('td')[1].div
|
||||||
assert div.text.strip() == 'None'
|
assert div.text.strip() == 'None'
|
||||||
assert 'default' in div.attrs['class'][0]
|
assert 'default' in div.attrs['class'][0]
|
||||||
|
|
||||||
@@ -118,7 +122,7 @@ def test_escapes_letter_contact_block(
|
|||||||
))
|
))
|
||||||
|
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
div = str(page.find_all('tr')[5].find_all('td')[1].div)
|
div = str(page.find_all('tr')[6].find_all('td')[1].div)
|
||||||
assert 'foo<br>bar' in div
|
assert 'foo<br>bar' in div
|
||||||
assert '<script>' not in div
|
assert '<script>' not in div
|
||||||
|
|
||||||
@@ -1015,3 +1019,32 @@ def test_cant_resume_active_service(
|
|||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
assert 'Resume service' not in {a.text for a in page.find_all('a', class_='button')}
|
assert 'Resume service' not in {a.text for a in page.find_all('a', class_='button')}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('endpoint, expected_p', [
|
||||||
|
(
|
||||||
|
'main.service_set_international_sms',
|
||||||
|
(
|
||||||
|
'Sending text messages to international phone numbers is '
|
||||||
|
'an invitation‑only feature.'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'main.service_set_letters',
|
||||||
|
(
|
||||||
|
'Using GOV.UK Notify to send letters is an invitation‑only '
|
||||||
|
'feature.'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
])
|
||||||
|
def test_invitation_pages(
|
||||||
|
logged_in_client,
|
||||||
|
service_one,
|
||||||
|
endpoint,
|
||||||
|
expected_p,
|
||||||
|
):
|
||||||
|
response = logged_in_client.get(url_for(endpoint, service_id=service_one['id']))
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
|
assert normalize_spaces(page.select('main p')[0].text) == expected_p
|
||||||
|
|||||||
Reference in New Issue
Block a user