mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-23 11:51:05 -05:00
Add service-specific versions of agreement page
Our usability testing found that jumping out of the service when going to download the agreement made it difficult for people to find their way back to the ‘Request to go live’ page. This commit adds a duplicate, service-specific versions of these pages which have the same content but: - keep the service navigation - have a link back to the ‘Request to go live’ page
This commit is contained in:
@@ -16,6 +16,15 @@ def agreement():
|
||||
)
|
||||
|
||||
|
||||
@main.route('/service/<uuid:service_id>/agreement')
|
||||
@login_required
|
||||
def service_agreement(service_id):
|
||||
return render_template(
|
||||
'views/agreement/service-{}.html'.format(current_user.default_organisation.as_jinja_template),
|
||||
owner=current_user.default_organisation.name,
|
||||
)
|
||||
|
||||
|
||||
@main.route('/agreement.pdf')
|
||||
@login_required
|
||||
def download_agreement():
|
||||
|
||||
@@ -234,6 +234,7 @@ class HeaderNavigation(Navigation):
|
||||
'service_add_email_reply_to',
|
||||
'service_add_letter_contact',
|
||||
'service_add_sms_sender',
|
||||
'service_agreement',
|
||||
'service_confirm_delete_email_reply_to',
|
||||
'service_confirm_delete_sms_sender',
|
||||
'service_dashboard',
|
||||
@@ -365,6 +366,7 @@ class MainNavigation(Navigation):
|
||||
'service_add_email_reply_to',
|
||||
'service_add_letter_contact',
|
||||
'service_add_sms_sender',
|
||||
'service_agreement',
|
||||
'service_confirm_delete_email_reply_to',
|
||||
'service_confirm_delete_sms_sender',
|
||||
'service_edit_email_reply_to',
|
||||
@@ -735,6 +737,7 @@ class CaseworkNavigation(Navigation):
|
||||
'service_add_email_reply_to',
|
||||
'service_add_letter_contact',
|
||||
'service_add_sms_sender',
|
||||
'service_agreement',
|
||||
'service_confirm_delete_email_reply_to',
|
||||
'service_confirm_delete_sms_sender',
|
||||
'service_dashboard',
|
||||
@@ -991,6 +994,7 @@ class OrgNavigation(Navigation):
|
||||
'service_add_email_reply_to',
|
||||
'service_add_letter_contact',
|
||||
'service_add_sms_sender',
|
||||
'service_agreement',
|
||||
'service_confirm_delete_email_reply_to',
|
||||
'service_confirm_delete_sms_sender',
|
||||
'service_dashboard',
|
||||
|
||||
23
app/templates/views/agreement/service-agreement-choose.html
Normal file
23
app/templates/views/agreement/service-agreement-choose.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/page-header.html" import page_header %}
|
||||
|
||||
{% block service_page_title %}
|
||||
GOV.UK Notify data sharing and financial agreement
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<div class="grid-row">
|
||||
<div class="column-five-sixths">
|
||||
|
||||
{{ page_header(
|
||||
'GOV.UK Notify data sharing and financial agreement',
|
||||
back_link=url_for('main.request_to_go_live', service_id=current_service.id)
|
||||
)}}
|
||||
|
||||
{% include 'views/agreement/_agreement-choose.html'%}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
23
app/templates/views/agreement/service-agreement-signed.html
Normal file
23
app/templates/views/agreement/service-agreement-signed.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/page-header.html" import page_header %}
|
||||
|
||||
{% block service_page_title %}
|
||||
GOV.UK Notify data sharing and financial agreement
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<div class="grid-row">
|
||||
<div class="column-five-sixths">
|
||||
|
||||
{{ page_header(
|
||||
'GOV.UK Notify data sharing and financial agreement',
|
||||
back_link=url_for('main.request_to_go_live', service_id=current_service.id)
|
||||
)}}
|
||||
|
||||
{% include 'views/agreement/_agreement-signed.html' %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
23
app/templates/views/agreement/service-agreement.html
Normal file
23
app/templates/views/agreement/service-agreement.html
Normal file
@@ -0,0 +1,23 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/page-header.html" import page_header %}
|
||||
|
||||
{% block service_page_title %}
|
||||
GOV.UK Notify data sharing and financial agreement
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<div class="grid-row">
|
||||
<div class="column-five-sixths">
|
||||
|
||||
{{ page_header(
|
||||
'GOV.UK Notify data sharing and financial agreement',
|
||||
back_link=url_for('main.request_to_go_live', service_id=current_service.id)
|
||||
)}}
|
||||
|
||||
{% include 'views/agreement/_agreement.html'%}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -4,7 +4,7 @@ from io import BytesIO
|
||||
import pytest
|
||||
from flask import url_for
|
||||
|
||||
from tests.conftest import mock_get_organisation_by_domain
|
||||
from tests.conftest import SERVICE_ONE_ID, mock_get_organisation_by_domain
|
||||
|
||||
|
||||
class _MockS3Object():
|
||||
@@ -16,6 +16,22 @@ class _MockS3Object():
|
||||
return {'Body': BytesIO(self.data)}
|
||||
|
||||
|
||||
@pytest.mark.parametrize('endpoint, extra_args, link_selector, expected_back_links', [
|
||||
(
|
||||
'main.agreement',
|
||||
{},
|
||||
'main .column-two-thirds a',
|
||||
[]
|
||||
),
|
||||
(
|
||||
'main.service_agreement',
|
||||
{'service_id': SERVICE_ONE_ID},
|
||||
'main .column-five-sixths a',
|
||||
[
|
||||
partial(url_for, 'main.request_to_go_live', service_id=SERVICE_ONE_ID)
|
||||
]
|
||||
),
|
||||
])
|
||||
@pytest.mark.parametrize('agreement_signed, crown, expected_links', [
|
||||
(
|
||||
True, True,
|
||||
@@ -44,17 +60,23 @@ def test_show_agreement_page(
|
||||
client_request,
|
||||
mocker,
|
||||
fake_uuid,
|
||||
mock_has_jobs,
|
||||
agreement_signed,
|
||||
crown,
|
||||
expected_links,
|
||||
endpoint,
|
||||
extra_args,
|
||||
link_selector,
|
||||
expected_back_links,
|
||||
):
|
||||
mock_get_organisation_by_domain(
|
||||
mocker,
|
||||
crown=crown,
|
||||
agreement_signed=agreement_signed,
|
||||
)
|
||||
page = client_request.get('main.agreement')
|
||||
links = page.select('main .column-two-thirds a')
|
||||
expected_links = expected_back_links + expected_links
|
||||
page = client_request.get(endpoint, **extra_args)
|
||||
links = page.select(link_selector)
|
||||
assert len(links) == len(expected_links)
|
||||
for index, link in enumerate(links):
|
||||
assert link['href'] == expected_links[index]()
|
||||
|
||||
Reference in New Issue
Block a user