Add send letters as PDF service setting

This commit is contained in:
Ken Tsang
2017-12-01 19:12:22 +00:00
parent eefe5d0ba5
commit 8fb7f79e5e
3 changed files with 35 additions and 0 deletions

View File

@@ -293,6 +293,14 @@ def service_switch_can_send_letters(service_id):
return redirect(url_for('.service_settings', service_id=service_id))
@main.route("/services/<service_id>/service-settings/send-letters-as-pdf")
@login_required
@user_has_permissions(admin_override=True)
def service_switch_send_letters_as_pdf(service_id):
switch_service_permissions(service_id, 'letters_as_pdf')
return redirect(url_for('.service_settings', service_id=service_id))
@main.route("/services/<service_id>/service-settings/can-send-international-sms")
@login_required
@user_has_permissions(admin_override=True)

View File

@@ -256,6 +256,13 @@
{{ 'Stop sending letters' if 'letter' in current_service.permissions else 'Allow to send letters' }}
</a>
</li>
{% if 'letter' in current_service.permissions %}
<li class="bottom-gutter">
<a href="{{ url_for('.service_switch_send_letters_as_pdf', service_id=current_service.id) }}" class="button">
{{ 'Stop sending letters as PDF' if 'letters_as_pdf' in current_service.permissions else 'Send letters as PDF' }}
</a>
</li>
{% endif %}
<li class="bottom-gutter">
<a href="{{ url_for('.service_switch_can_send_sms', service_id=current_service.id) }}" class="button">
{{ 'Stop sending sms' if 'sms' in current_service.permissions else 'Allow to send sms' }}

View File

@@ -39,6 +39,12 @@ def get_service_settings_page(
({'permissions': ['sms']}, '.service_set_inbound_number', {'set_inbound_sms': True}, 'Allow inbound sms'),
(
{'permissions': ['letter', 'letters_as_pdf']},
'.service_switch_send_letters_as_pdf', {}, 'Stop sending letters as PDF'
),
({'permissions': ['letter']}, '.service_switch_send_letters_as_pdf', {}, 'Send letters as PDF'),
({'active': True}, '.archive_service', {}, 'Archive service'),
({'active': True}, '.suspend_service', {}, 'Suspend service'),
({'active': False}, '.resume_service', {}, 'Resume service'),
@@ -64,6 +70,20 @@ def test_service_settings_doesnt_show_inbound_options_if_sms_disabled(
assert not any(button for button in toggles if 'inbound sms' in button.text)
@pytest.mark.parametrize('permissions', [
['letters_as_pdf'], []
])
def test_service_settings_doesnt_show_letters_as_pdf_options_if_letters_disabled(
get_service_settings_page,
service_one,
permissions
):
service_one['permissions'] = permissions
page = get_service_settings_page()
toggles = page.find_all('a', {'class': 'button'})
assert not any(button for button in toggles if 'letters as PDF' in button.text)
@pytest.mark.parametrize('service_fields, hidden_button_text', [
# if no sms permission, inbound sms shouldn't show
({'permissions': ['inbound_sms']}, 'Stop inbound sms'),