mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-18 13:39:57 -04:00
Make a separate page for previous alerts
Previous alerts are much less important than ones that are live or waiting for approval. Therefore we can make the dashboard more focused by moving previous alerts to their own page.
This commit is contained in:
@@ -40,6 +40,17 @@ def broadcast_dashboard(service_id):
|
||||
)
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/previous-alerts')
|
||||
@user_has_permissions()
|
||||
@service_has_permission('broadcast')
|
||||
def broadcast_dashboard_previous(service_id):
|
||||
return render_template(
|
||||
'views/broadcast/previous-broadcasts.html',
|
||||
broadcasts=BroadcastMessages(service_id).with_status('cancelled', 'completed'),
|
||||
empty_message='You do not have any previous alerts',
|
||||
)
|
||||
|
||||
|
||||
@main.route('/services/<uuid:service_id>/broadcast-dashboard.json')
|
||||
@user_has_permissions()
|
||||
@service_has_permission('broadcast')
|
||||
|
||||
@@ -358,6 +358,7 @@ class HeaderNavigation(Navigation):
|
||||
'who_its_for',
|
||||
'broadcast_tour',
|
||||
'broadcast_dashboard',
|
||||
'broadcast_dashboard_previous',
|
||||
'broadcast_dashboard_updates',
|
||||
'broadcast',
|
||||
'preview_broadcast_areas',
|
||||
@@ -394,6 +395,9 @@ class MainNavigation(Navigation):
|
||||
'view_notification',
|
||||
'view_notifications',
|
||||
},
|
||||
'previous_broadcasts': {
|
||||
'broadcast_dashboard_previous',
|
||||
},
|
||||
'templates': {
|
||||
'action_blocked',
|
||||
'add_service_template',
|
||||
@@ -716,6 +720,7 @@ class CaseworkNavigation(Navigation):
|
||||
'dashboard': {
|
||||
'broadcast_tour',
|
||||
'broadcast_dashboard',
|
||||
'broadcast_dashboard_previous',
|
||||
'broadcast_dashboard_updates',
|
||||
},
|
||||
'send-one-off': {
|
||||
@@ -1354,6 +1359,7 @@ class OrgNavigation(Navigation):
|
||||
'who_its_for',
|
||||
'broadcast_tour',
|
||||
'broadcast_dashboard',
|
||||
'broadcast_dashboard_previous',
|
||||
'broadcast_dashboard_updates',
|
||||
'broadcast',
|
||||
'preview_broadcast_areas',
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
{% if current_user.has_permissions() %}
|
||||
{% if current_service.has_permission('broadcast') %}
|
||||
<li><a class="govuk-link govuk-link--no-visited-state{{ main_navigation.is_selected('dashboard') }}" href="{{ url_for('.broadcast_dashboard', service_id=current_service.id) }}">Dashboard</a></li>
|
||||
<li><a class="govuk-link govuk-link--no-visited-state{{ main_navigation.is_selected('previous_broadcasts') }}" href="{{ url_for('.broadcast_dashboard_previous', service_id=current_service.id) }}">Previous alerts</a></li>
|
||||
{% elif current_user.has_permissions('view_activity') %}
|
||||
<li><a class="govuk-link govuk-link--no-visited-state{{ main_navigation.is_selected('dashboard') }}" href="{{ url_for('.service_dashboard', service_id=current_service.id) }}">Dashboard</a></li>
|
||||
{% endif %}
|
||||
|
||||
15
app/templates/views/broadcast/previous-broadcasts.html
Normal file
15
app/templates/views/broadcast/previous-broadcasts.html
Normal file
@@ -0,0 +1,15 @@
|
||||
{% from 'components/ajax-block.html' import ajax_block %}
|
||||
|
||||
{% extends "withnav_template.html" %}
|
||||
|
||||
{% block service_page_title %}
|
||||
Previous alerts
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<h1 class="heading-medium govuk-!-margin-bottom-2">Previous alerts</h1>
|
||||
|
||||
{% include('views/broadcast/partials/dashboard-table.html') %}
|
||||
|
||||
{% endblock %}
|
||||
@@ -22,6 +22,10 @@ sample_uuid = sample_uuid()
|
||||
'.broadcast_dashboard_updates', {},
|
||||
403, 405,
|
||||
),
|
||||
(
|
||||
'.broadcast_dashboard_previous', {},
|
||||
403, 405,
|
||||
),
|
||||
(
|
||||
'.broadcast',
|
||||
{'template_id': sample_uuid},
|
||||
@@ -348,6 +352,31 @@ def test_broadcast_dashboard_json(
|
||||
assert 'Finished yesterday at 8:20pm' in json_response['previous_broadcasts']
|
||||
|
||||
|
||||
@freeze_time('2020-02-20 02:20')
|
||||
def test_previous_broadcasts_page(
|
||||
client_request,
|
||||
service_one,
|
||||
mock_get_broadcast_messages,
|
||||
mock_get_service_templates,
|
||||
):
|
||||
service_one['permissions'] += ['broadcast']
|
||||
page = client_request.get(
|
||||
'.broadcast_dashboard_previous',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
)
|
||||
|
||||
assert normalize_spaces(page.select_one('main h1').text) == (
|
||||
'Previous alerts'
|
||||
)
|
||||
assert len(page.select('table')) == 1
|
||||
assert [
|
||||
normalize_spaces(row.text) for row in page.select('table')[0].select('tbody tr')
|
||||
] == [
|
||||
'Example template To England and Scotland Stopped 10 February at 2:20am',
|
||||
'Example template To England and Scotland Finished yesterday at 8:20pm',
|
||||
]
|
||||
|
||||
|
||||
def test_broadcast_page(
|
||||
client_request,
|
||||
service_one,
|
||||
|
||||
@@ -189,6 +189,7 @@ def test_navigation_for_services_with_broadcast_permission(
|
||||
a['href'] for a in page.select('.navigation a')
|
||||
] == [
|
||||
'/services/{}/broadcast-dashboard'.format(SERVICE_ONE_ID),
|
||||
'/services/{}/previous-alerts'.format(SERVICE_ONE_ID),
|
||||
'/services/{}/templates'.format(SERVICE_ONE_ID),
|
||||
'/services/{}/users'.format(SERVICE_ONE_ID),
|
||||
'/services/{}/service-settings'.format(SERVICE_ONE_ID),
|
||||
|
||||
Reference in New Issue
Block a user