mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-28 19:59:18 -04:00
Let users switch channels on and off by themselves
We let people do this for letters already. We should let them do it for emails and texts too, rather than have to email us.
This commit is contained in:
@@ -696,10 +696,18 @@ class ServiceLetterContactBlockForm(StripWhitespaceForm):
|
||||
)
|
||||
|
||||
|
||||
class ServiceSwitchLettersForm(StripWhitespaceForm):
|
||||
class ServiceSwitchChannelForm(StripWhitespaceForm):
|
||||
|
||||
def __init__(self, channel, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.enabled.label.text = 'Send {}'.format({
|
||||
'email': 'emails',
|
||||
'sms': 'text messages',
|
||||
'letter': 'letters',
|
||||
}.get(channel))
|
||||
|
||||
enabled = RadioField(
|
||||
'Send letters',
|
||||
'Choices',
|
||||
choices=[
|
||||
('on', 'On'),
|
||||
('off', 'Off'),
|
||||
|
||||
@@ -48,7 +48,7 @@ from app.main.forms import (
|
||||
ServiceReplyToEmailForm,
|
||||
ServiceSetBranding,
|
||||
ServiceSmsSenderForm,
|
||||
ServiceSwitchLettersForm,
|
||||
ServiceSwitchChannelForm,
|
||||
SMSPrefixForm,
|
||||
branding_options_dict,
|
||||
)
|
||||
@@ -368,15 +368,6 @@ def service_set_contact_link(service_id):
|
||||
return render_template('views/service-settings/contact_link.html', form=form)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-email", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
def service_set_email(service_id):
|
||||
return render_template(
|
||||
'views/service-settings/set-email.html',
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-reply-to-email", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
@@ -484,15 +475,6 @@ def service_set_inbound_number(service_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-sms", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
def service_set_sms(service_id):
|
||||
return render_template(
|
||||
'views/service-settings/set-sms.html',
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/sms-prefix", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
@@ -546,23 +528,41 @@ def service_set_inbound_sms(service_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-letters", methods=['GET', 'POST'])
|
||||
@main.route("/services/<service_id>/service-settings/set-letters", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
def service_set_letters(service_id):
|
||||
form = ServiceSwitchLettersForm(
|
||||
enabled='on' if current_service.has_permission('letter') else 'off'
|
||||
return redirect(url_for(
|
||||
'.service_set_channel',
|
||||
service_id=current_service.id,
|
||||
channel='letter',
|
||||
))
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/set-<channel>", methods=['GET', 'POST'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
def service_set_channel(service_id, channel):
|
||||
|
||||
if channel not in {'email', 'sms', 'letter'}:
|
||||
abort(404)
|
||||
|
||||
form = ServiceSwitchChannelForm(
|
||||
channel=channel,
|
||||
enabled='on' if current_service.has_permission(channel) else 'off'
|
||||
)
|
||||
|
||||
if form.validate_on_submit():
|
||||
current_service.force_permission(
|
||||
'letter',
|
||||
channel,
|
||||
on=(form.enabled.data == 'on'),
|
||||
)
|
||||
return redirect(
|
||||
url_for(".service_settings", service_id=service_id)
|
||||
)
|
||||
|
||||
return render_template(
|
||||
'views/service-settings/set-letters.html',
|
||||
'views/service-settings/set-{}.html'.format(channel),
|
||||
form=form,
|
||||
)
|
||||
|
||||
|
||||
@@ -227,8 +227,8 @@ class HeaderNavigation(Navigation):
|
||||
'service_name_change_confirm',
|
||||
'service_preview_email_branding',
|
||||
'service_set_auth_type',
|
||||
'service_set_channel',
|
||||
'service_set_contact_link',
|
||||
'service_set_email',
|
||||
'service_set_email_branding',
|
||||
'service_set_inbound_number',
|
||||
'service_set_inbound_sms',
|
||||
@@ -237,7 +237,6 @@ class HeaderNavigation(Navigation):
|
||||
'service_set_letters',
|
||||
'service_set_postage',
|
||||
'service_set_reply_to_email',
|
||||
'service_set_sms',
|
||||
'service_set_sms_prefix',
|
||||
'service_settings',
|
||||
'service_sms_senders',
|
||||
@@ -354,8 +353,8 @@ class MainNavigation(Navigation):
|
||||
'service_name_change_confirm',
|
||||
'service_preview_email_branding',
|
||||
'service_set_auth_type',
|
||||
'service_set_channel',
|
||||
'service_set_contact_link',
|
||||
'service_set_email',
|
||||
'service_set_email_branding',
|
||||
'service_set_inbound_number',
|
||||
'service_set_inbound_sms',
|
||||
@@ -364,7 +363,6 @@ class MainNavigation(Navigation):
|
||||
'service_set_letters',
|
||||
'service_set_postage',
|
||||
'service_set_reply_to_email',
|
||||
'service_set_sms',
|
||||
'service_set_sms_prefix',
|
||||
'service_settings',
|
||||
'service_sms_senders',
|
||||
@@ -690,8 +688,8 @@ class CaseworkNavigation(Navigation):
|
||||
'service_name_change_confirm',
|
||||
'service_preview_email_branding',
|
||||
'service_set_auth_type',
|
||||
'service_set_channel',
|
||||
'service_set_contact_link',
|
||||
'service_set_email',
|
||||
'service_set_email_branding',
|
||||
'service_set_inbound_number',
|
||||
'service_set_inbound_sms',
|
||||
@@ -700,7 +698,6 @@ class CaseworkNavigation(Navigation):
|
||||
'service_set_letters',
|
||||
'service_set_postage',
|
||||
'service_set_reply_to_email',
|
||||
'service_set_sms',
|
||||
'service_set_sms_prefix',
|
||||
'service_settings',
|
||||
'service_sms_senders',
|
||||
@@ -926,8 +923,8 @@ class OrgNavigation(Navigation):
|
||||
'service_name_change_confirm',
|
||||
'service_preview_email_branding',
|
||||
'service_set_auth_type',
|
||||
'service_set_channel',
|
||||
'service_set_contact_link',
|
||||
'service_set_email',
|
||||
'service_set_email_branding',
|
||||
'service_set_inbound_number',
|
||||
'service_set_inbound_sms',
|
||||
@@ -936,7 +933,6 @@ class OrgNavigation(Navigation):
|
||||
'service_set_letters',
|
||||
'service_set_postage',
|
||||
'service_set_reply_to_email',
|
||||
'service_set_sms',
|
||||
'service_set_sms_prefix',
|
||||
'service_settings',
|
||||
'service_sms_senders',
|
||||
|
||||
@@ -71,12 +71,14 @@
|
||||
{{ text_field('Send emails') }}
|
||||
{{ boolean_field('email' in current_service.permissions) }}
|
||||
{{ edit_field(
|
||||
'Change',
|
||||
url_for('.service_set_email',
|
||||
service_id=current_service.id),
|
||||
permissions=['manage_service']
|
||||
)
|
||||
}}
|
||||
'Change',
|
||||
url_for(
|
||||
'.service_set_channel',
|
||||
channel='email',
|
||||
service_id=current_service.id
|
||||
),
|
||||
permissions=['manage_service']
|
||||
)}}
|
||||
{% endcall %}
|
||||
|
||||
{% call settings_row(if_has_permission='email') %}
|
||||
@@ -121,12 +123,14 @@
|
||||
{{ text_field('Send text messages') }}
|
||||
{{ boolean_field('sms' in current_service.permissions) }}
|
||||
{{ edit_field(
|
||||
'Change',
|
||||
url_for('.service_set_sms',
|
||||
service_id=current_service.id),
|
||||
permissions=['manage_service']
|
||||
)
|
||||
}}
|
||||
'Change',
|
||||
url_for(
|
||||
'.service_set_channel',
|
||||
service_id=current_service.id,
|
||||
channel='sms'
|
||||
),
|
||||
permissions=['manage_service']
|
||||
)}}
|
||||
{% endcall %}
|
||||
|
||||
{% call settings_row(if_has_permission='sms') %}
|
||||
@@ -197,12 +201,14 @@
|
||||
{{ text_field('Send letters') }}
|
||||
{{ boolean_field('letter' in current_service.permissions) }}
|
||||
{{ edit_field(
|
||||
'Change',
|
||||
url_for('.service_set_letters',
|
||||
service_id=current_service.id),
|
||||
permissions=['manage_service']
|
||||
)
|
||||
}}
|
||||
'Change',
|
||||
url_for(
|
||||
'.service_set_channel',
|
||||
channel='letter',
|
||||
service_id=current_service.id
|
||||
),
|
||||
permissions=['manage_service']
|
||||
)}}
|
||||
{% endcall %}
|
||||
|
||||
{% call settings_row(if_has_permission='letter') %}
|
||||
|
||||
@@ -1,37 +1,28 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/textbox.html" import textbox %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/radios.html" import radios %}
|
||||
|
||||
{% block service_page_title %}
|
||||
Emails
|
||||
Send emails
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<div class="grid-row">
|
||||
<div class="column-five-sixths">
|
||||
<h1 class="heading-large">Emails</h1>
|
||||
{% if 'email' in current_service.permissions %}
|
||||
<p>
|
||||
Your service can send emails.
|
||||
</p>
|
||||
<p>
|
||||
If you want to turn it off,
|
||||
<a href="{{ url_for('.support') }}">get in touch with the GOV.UK Notify team</a>.
|
||||
</p>
|
||||
{% else %}
|
||||
<p>
|
||||
Sending emails 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'
|
||||
) }}
|
||||
<h1 class="heading-large">Send emails</h1>
|
||||
<p>
|
||||
It’s free to send emails through GOV.UK Notify.
|
||||
</p>
|
||||
{% call form_wrapper() %}
|
||||
{{ radios(form.enabled) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
back_link=url_for('.service_settings', service_id=current_service.id),
|
||||
back_link_text='Back to settings'
|
||||
) }}
|
||||
{% endcall %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/textbox.html" import textbox %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/radios.html" import radios %}
|
||||
|
||||
{% block service_page_title %}
|
||||
Text messages
|
||||
Send text messages
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<div class="grid-row">
|
||||
<div class="column-five-sixths">
|
||||
<h1 class="heading-large">Text messages</h1>
|
||||
{% if 'sms' in current_service.permissions %}
|
||||
<p>
|
||||
Your service can send text messages.
|
||||
</p>
|
||||
<p>
|
||||
If you want to turn it off,
|
||||
<a href="{{ url_for('.support') }}">get in touch with the GOV.UK Notify team</a>.
|
||||
</p>
|
||||
{% else %}
|
||||
<p>
|
||||
Sending text messages 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'
|
||||
) }}
|
||||
<h1 class="heading-large">Send text messages</h1>
|
||||
<p>
|
||||
You have a free allowance of
|
||||
{{ '{:,}'.format(current_service.free_sms_fragment_limit) }} text messages each
|
||||
financial year.
|
||||
</p>
|
||||
<p>
|
||||
It costs 1.58 pence (plus VAT) for each text message you send
|
||||
after your free allowance.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="{{ url_for(".pricing", _anchor="letters") }}">pricing</a> for more details.
|
||||
</p>
|
||||
{% call form_wrapper() %}
|
||||
{{ radios(form.enabled) }}
|
||||
{{ page_footer(
|
||||
'Save',
|
||||
back_link=url_for('.service_settings', service_id=current_service.id),
|
||||
back_link_text='Back to settings'
|
||||
) }}
|
||||
{% endcall %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user