Let users delete letter contact blocks

Because they can delete email reply to addresses and text message
senders.
This commit is contained in:
Chris Hill-Scott
2019-07-04 16:11:19 +01:00
parent bb99ff27c9
commit 17bf06d04c
6 changed files with 92 additions and 2 deletions

View File

@@ -736,7 +736,16 @@ def service_add_letter_contact(service_id):
)
@main.route("/services/<service_id>/service-settings/letter-contact/<letter_contact_id>/edit", methods=['GET', 'POST'])
@main.route(
"/services/<service_id>/service-settings/letter-contact/<letter_contact_id>/edit",
methods=['GET', 'POST'],
endpoint="service_edit_letter_contact",
)
@main.route(
"/services/<service_id>/service-settings/letter-contact/<letter_contact_id>/delete",
methods=['GET'],
endpoint="service_confirm_delete_letter_contact",
)
@user_has_permissions('manage_service')
def service_edit_letter_contact(service_id, letter_contact_id):
letter_contact_block = current_service.get_letter_contact_block(letter_contact_id)
@@ -753,12 +762,28 @@ def service_edit_letter_contact(service_id, letter_contact_id):
is_default=True if letter_contact_block['is_default'] else form.is_default.data
)
return redirect(url_for('.service_letter_contact_details', service_id=service_id))
if (request.endpoint == "main.service_confirm_delete_letter_contact"):
flash("Are you sure you want to delete this contact block?", 'delete')
return render_template(
'views/service-settings/letter-contact/edit.html',
form=form,
letter_contact_id=letter_contact_block['id'])
@main.route(
"/services/<service_id>/service-settings/letter-contact/<letter_contact_id>/delete",
methods=['POST'],
)
@user_has_permissions('manage_service')
def service_delete_letter_contact(service_id, letter_contact_id):
service_api_client.delete_letter_contact(
service_id=current_service.id,
letter_contact_id=letter_contact_id,
)
return redirect(url_for('.service_letter_contact_details', service_id=current_service.id))
@main.route("/services/<service_id>/service-settings/sms-sender", methods=['GET'])
@user_has_permissions('manage_service', 'manage_api_keys')
def service_sms_senders(service_id):

View File

@@ -246,10 +246,12 @@ class HeaderNavigation(Navigation):
'service_accept_agreement',
'service_confirm_agreement',
'service_confirm_delete_email_reply_to',
'service_confirm_delete_letter_contact',
'service_confirm_delete_sms_sender',
'service_dashboard',
'service_dashboard_updates',
'service_delete_email_reply_to',
'service_delete_letter_contact',
'service_delete_sms_sender',
'service_download_agreement',
'service_edit_email_reply_to',
@@ -381,6 +383,7 @@ class MainNavigation(Navigation):
'service_accept_agreement',
'service_confirm_agreement',
'service_confirm_delete_email_reply_to',
'service_confirm_delete_letter_contact',
'service_confirm_delete_sms_sender',
'service_edit_email_reply_to',
'service_edit_letter_contact',
@@ -535,6 +538,7 @@ class MainNavigation(Navigation):
'send_notification',
'service_dashboard_updates',
'service_delete_email_reply_to',
'service_delete_letter_contact',
'service_delete_sms_sender',
'service_download_agreement',
'service_letter_validation_preview',
@@ -769,10 +773,12 @@ class CaseworkNavigation(Navigation):
'service_accept_agreement',
'service_confirm_agreement',
'service_confirm_delete_email_reply_to',
'service_confirm_delete_letter_contact',
'service_confirm_delete_sms_sender',
'service_dashboard',
'service_dashboard_updates',
'service_delete_email_reply_to',
'service_delete_letter_contact',
'service_delete_sms_sender',
'service_download_agreement',
'service_edit_email_reply_to',
@@ -1039,10 +1045,12 @@ class OrgNavigation(Navigation):
'service_accept_agreement',
'service_confirm_agreement',
'service_confirm_delete_email_reply_to',
'service_confirm_delete_letter_contact',
'service_confirm_delete_sms_sender',
'service_dashboard',
'service_dashboard_updates',
'service_delete_email_reply_to',
'service_delete_letter_contact',
'service_delete_sms_sender',
'service_download_agreement',
'service_edit_email_reply_to',

View File

@@ -458,6 +458,13 @@ class ServiceAPIClient(NotifyAdminAPIClient):
}
)
@cache.delete('service-{service_id}')
def delete_letter_contact(self, service_id, letter_contact_id):
return self.post(
"/service/{}/letter-contact/{}/archive".format(service_id, letter_contact_id),
data=None
)
def get_sms_senders(self, service_id):
return self.get(
"/service/{}/sms-sender".format(service_id)

View File

@@ -33,7 +33,11 @@
{{ checkbox(form.is_default) }}
</div>
{% endif %}
{{ page_footer('Save') }}
{{ page_footer(
'Save',
delete_link=url_for('.service_confirm_delete_letter_contact', service_id=current_service.id, letter_contact_id=letter_contact_id),
delete_link_text='Delete'
) }}
{% endcall %}
{% endblock %}