diff --git a/app/main/views/platform_admin.py b/app/main/views/platform_admin.py
index 584fdfcf8..c8d8dfb93 100644
--- a/app/main/views/platform_admin.py
+++ b/app/main/views/platform_admin.py
@@ -28,33 +28,6 @@ ZERO_FAILURE_THRESHOLD = 0
@login_required
@user_is_platform_admin
def platform_admin():
- form = DateFilterForm(request.args)
- api_args = {'detailed': True,
- 'only_active': False, # specifically DO get inactive services
- 'include_from_test_key': form.include_from_test_key.data,
- }
-
- if form.start_date.data:
- api_args['start_date'] = form.start_date.data
- api_args['end_date'] = form.end_date.data or datetime.utcnow().date()
-
- platform_stats = service_api_client.get_aggregate_platform_stats(api_args)
-
- for stat in platform_stats.values():
- stat['failure_rate'] = get_formatted_percentage(stat['failed'], stat['requested'])
-
- return render_template(
- 'views/platform-admin/index.html',
- include_from_test_key=form.include_from_test_key.data,
- form=form,
- global_stats=platform_stats,
- )
-
-
-@main.route("/platform-admin-new")
-@login_required
-@user_is_platform_admin
-def platform_admin_new():
form = DateFilterForm(request.args, meta={'csrf': False})
api_args = {}
@@ -68,7 +41,7 @@ def platform_admin_new():
number_of_complaints = complaint_api_client.get_complaint_count(api_args)
return render_template(
- 'views/platform-admin/index_new.html',
+ 'views/platform-admin/index.html',
form=form,
global_stats=make_columns(platform_stats, number_of_complaints)
)
diff --git a/app/navigation.py b/app/navigation.py
index a993c6270..4860e4adf 100644
--- a/app/navigation.py
+++ b/app/navigation.py
@@ -79,7 +79,6 @@ class HeaderNavigation(Navigation):
'live_services',
'organisations',
'platform_admin',
- 'platform_admin_new',
'suspend_service',
'trial_services',
'update_email_branding',
@@ -425,7 +424,6 @@ class MainNavigation(Navigation):
'organisation_settings',
'organisations',
'platform_admin',
- 'platform_admin_new',
'platform_admin_list_complaints',
'preview_basic_view',
'pricing',
@@ -599,7 +597,6 @@ class CaseworkNavigation(Navigation):
'organisation_settings',
'organisations',
'platform_admin',
- 'platform_admin_new',
'platform_admin_list_complaints',
'preview_basic_view',
'pricing',
@@ -818,7 +815,6 @@ class OrgNavigation(Navigation):
'old_using_notify',
'organisations',
'platform_admin',
- 'platform_admin_new',
'platform_admin_list_complaints',
'preview_basic_view',
'pricing',
diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py
index 276872af3..a60fb135d 100644
--- a/app/notify_client/service_api_client.py
+++ b/app/notify_client/service_api_client.py
@@ -412,9 +412,6 @@ class ServiceAPIClient(NotifyAdminAPIClient):
}
)
- def get_aggregate_platform_stats(self, params_dict=None):
- return self.get("/service/platform-stats", params=params_dict)
-
def get_sms_senders(self, service_id):
return self.get(
"/service/{}/sms-sender".format(service_id)
diff --git a/app/templates/views/platform-admin/index.html b/app/templates/views/platform-admin/index.html
index 5210e188f..4754af1b0 100644
--- a/app/templates/views/platform-admin/index.html
+++ b/app/templates/views/platform-admin/index.html
@@ -1,9 +1,8 @@
{% extends "views/platform-admin/_base_template.html" %}
{% from "components/textbox.html" import textbox %}
-{% from "components/big-number.html" import big_number %}
-{% from "components/checkbox.html" import checkbox %}
-{% from "components/page-footer.html" import page_footer %}
-{% from "components/table.html" import mapping_table, field, stats_fields, row_group, row, right_aligned_field_heading, hidden_field_heading, text_field %}
+{% from "components/big-number.html" import big_number_simple %}
+{% from "components/message-count-label.html" import message_count_label %}
+{% from "components/status-box.html" import status_box %}
{% block per_page_title %}
Platform admin
@@ -14,18 +13,46 @@
Summary
-
-
+
Apply filters
- {% include "views/platform-admin/_global_stats.html" %}
+
+ {% for noti_type in global_stats %}
+
+ {{ big_number_simple(
+ noti_type.black_box.number,
+ message_count_label(noti_type.black_box.number, noti_type.black_box.notification_type)
+ ) }}
+
+ {% for item in noti_type.other_data %}
+ {{ status_box(
+ number=item.number,
+ label=item.label,
+ failing=item.failing,
+ percentage=item.percentage,
+ url=item.url)
+ }}
+ {% endfor %}
+
+ {% endfor %}
+
+
+
+ {% for noti_type in global_stats %}
+
+
+ {{ "{:,}".format(noti_type.test_data.number) }}
+ {{ noti_type.test_data.label }}
+
+
+ {% endfor %}
+
{% endblock %}
diff --git a/app/templates/views/platform-admin/index_new.html b/app/templates/views/platform-admin/index_new.html
deleted file mode 100644
index 4754af1b0..000000000
--- a/app/templates/views/platform-admin/index_new.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{% extends "views/platform-admin/_base_template.html" %}
-{% from "components/textbox.html" import textbox %}
-{% from "components/big-number.html" import big_number_simple %}
-{% from "components/message-count-label.html" import message_count_label %}
-{% from "components/status-box.html" import status_box %}
-
-{% block per_page_title %}
- Platform admin
-{% endblock %}
-
-{% block platform_admin_content %}
-
-
- Summary
-
-
- Apply filters
-
-
-
-
- {% for noti_type in global_stats %}
-
- {{ big_number_simple(
- noti_type.black_box.number,
- message_count_label(noti_type.black_box.number, noti_type.black_box.notification_type)
- ) }}
-
- {% for item in noti_type.other_data %}
- {{ status_box(
- number=item.number,
- label=item.label,
- failing=item.failing,
- percentage=item.percentage,
- url=item.url)
- }}
- {% endfor %}
-
- {% endfor %}
-
-
-
- {% for noti_type in global_stats %}
-
-
- {{ "{:,}".format(noti_type.test_data.number) }}
- {{ noti_type.test_data.label }}
-
-
- {% endfor %}
-
-
-{% endblock %}
diff --git a/tests/app/main/views/test_platform_admin.py b/tests/app/main/views/test_platform_admin.py
index 047affe81..280f104fe 100644
--- a/tests/app/main/views/test_platform_admin.py
+++ b/tests/app/main/views/test_platform_admin.py
@@ -137,28 +137,6 @@ def test_live_trial_services_toggle_including_from_test_key(
'include_from_test_key': inc})
-@pytest.mark.parametrize('include_from_test_key, inc', [
- ("Y", True),
- ("N", False)
-])
-def test_platform_admin_toggle_including_from_test_key(
- include_from_test_key,
- client,
- platform_admin_user,
- mocker,
- mock_get_aggregate_platform_stats,
- inc
-):
- mock_get_user(mocker, user=platform_admin_user)
- client.login(platform_admin_user)
- response = client.get(url_for('main.platform_admin', include_from_test_key=include_from_test_key))
-
- assert response.status_code == 200
- mock_get_aggregate_platform_stats.assert_called_once_with({'detailed': True,
- 'only_active': False,
- 'include_from_test_key': inc})
-
-
@pytest.mark.parametrize('endpoint', [
'main.live_services',
'main.trial_services'
@@ -186,59 +164,6 @@ def test_live_trial_services_with_date_filter(
})
-def test_platform_admin_with_date_filter(
- client,
- platform_admin_user,
- mocker,
- mock_get_aggregate_platform_stats
-):
- mock_get_user(mocker, user=platform_admin_user)
- client.login(platform_admin_user)
- response = client.get(url_for('main.platform_admin', start_date='2016-12-20', end_date='2016-12-28'))
-
- assert response.status_code == 200
- resp_data = response.get_data(as_text=True)
- assert 'Platform admin' in resp_data
- mock_get_aggregate_platform_stats.assert_called_once_with({
- 'include_from_test_key': False,
- 'end_date': datetime.date(2016, 12, 28),
- 'start_date': datetime.date(2016, 12, 20),
- 'detailed': True,
- 'only_active': False,
- })
-
-
-def test_should_show_total_on_platform_admin_page(
- client,
- platform_admin_user,
- mocker,
- mock_get_aggregate_platform_stats
-):
- stats = {
- 'email': {'requested': 61, 'delivered': 55, 'failed': 6},
- 'sms': {'requested': 121, 'delivered': 110, 'failed': 11},
- 'letter': {'requested': 45, 'delivered': 32, 'failed': 13}
- }
- expected = (
- '61 emails sent 6 failed – 9.8%',
- '121 text messages sent 11 failed – 9.1%',
- '45 letters sent 13 failed – 28.9%'
- )
-
- mock_get_aggregate_platform_stats.return_value = stats
-
- mock_get_user(mocker, user=platform_admin_user)
- client.login(platform_admin_user)
- response = client.get(url_for('main.platform_admin'))
- assert response.status_code == 200
- page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
- assert (
- normalize_spaces(page.select('.big-number-with-status')[0].text),
- normalize_spaces(page.select('.big-number-with-status')[1].text),
- normalize_spaces(page.select('.big-number-with-status')[2].text),
- ) == expected
-
-
@pytest.mark.parametrize('endpoint, expected_big_numbers', [
(
'main.live_services', (
@@ -522,37 +447,6 @@ def test_shows_archived_label_instead_of_live_or_research_mode_label(
assert service_mode == 'archived'
-def test_should_show_correct_sent_totals_for_platform_admin(
- client,
- platform_admin_user,
- mocker,
- mock_get_aggregate_platform_stats,
- fake_uuid,
-):
- stats = {
- 'email': {'requested': 100, 'delivered': 20, 'failed': 40},
- 'sms': {'requested': 100, 'delivered': 10, 'failed': 30},
- 'letter': {'requested': 60, 'delivered': 40, 'failed': 5}
-
- }
- mock_get_aggregate_platform_stats.return_value = stats
- mock_get_user(mocker, user=platform_admin_user)
- client.login(platform_admin_user)
- response = client.get(url_for('main.platform_admin'))
-
- assert response.status_code == 200
- page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
-
- totals = page.find_all('div', 'big-number-with-status')
- email_total = int(totals[0].find_all('div', 'big-number-number')[0].text.strip())
- sms_total = int(totals[1].find_all('div', 'big-number-number')[0].text.strip())
- letter_total = int(totals[2].find_all('div', 'big-number-number')[0].text.strip())
-
- assert email_total == 60
- assert sms_total == 40
- assert letter_total == 60
-
-
@pytest.mark.parametrize('endpoint, restricted, research_mode', [
('main.trial_services', True, False),
('main.live_services', False, False)
@@ -739,7 +633,7 @@ def test_get_tech_failure_status_box_data_removes_percentage_data():
assert 'percentage' not in tech_failure_data
-def test_platform_admin_new_with_start_and_end_dates_provided(mocker, logged_in_platform_admin_client):
+def test_platform_admin_with_start_and_end_dates_provided(mocker, logged_in_platform_admin_client):
start_date = '2018-01-01'
end_date = '2018-06-01'
api_args = {'start_date': datetime.date(2018, 1, 1), 'end_date': datetime.date(2018, 6, 1)}
@@ -750,7 +644,7 @@ def test_platform_admin_new_with_start_and_end_dates_provided(mocker, logged_in_
complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count')
logged_in_platform_admin_client.get(
- url_for('main.platform_admin_new', start_date=start_date, end_date=end_date)
+ url_for('main.platform_admin', start_date=start_date, end_date=end_date)
)
aggregate_stats_mock.assert_called_with(api_args)
@@ -758,7 +652,7 @@ def test_platform_admin_new_with_start_and_end_dates_provided(mocker, logged_in_
@freeze_time('2018-6-11')
-def test_platform_admin_new_with_only_a_start_date_provided(mocker, logged_in_platform_admin_client):
+def test_platform_admin_with_only_a_start_date_provided(mocker, logged_in_platform_admin_client):
start_date = '2018-01-01'
api_args = {'start_date': datetime.date(2018, 1, 1), 'end_date': datetime.datetime.utcnow().date()}
@@ -767,13 +661,13 @@ def test_platform_admin_new_with_only_a_start_date_provided(mocker, logged_in_pl
'app.main.views.platform_admin.platform_stats_api_client.get_aggregate_platform_stats')
complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count')
- logged_in_platform_admin_client.get(url_for('main.platform_admin_new', start_date=start_date))
+ logged_in_platform_admin_client.get(url_for('main.platform_admin', start_date=start_date))
aggregate_stats_mock.assert_called_with(api_args)
complaint_count_mock.assert_called_with(api_args)
-def test_platform_admin_new_without_dates_provided(mocker, logged_in_platform_admin_client):
+def test_platform_admin_without_dates_provided(mocker, logged_in_platform_admin_client):
api_args = {}
mocker.patch('app.main.views.platform_admin.make_columns')
@@ -781,13 +675,13 @@ def test_platform_admin_new_without_dates_provided(mocker, logged_in_platform_ad
'app.main.views.platform_admin.platform_stats_api_client.get_aggregate_platform_stats')
complaint_count_mock = mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count')
- logged_in_platform_admin_client.get(url_for('main.platform_admin_new'))
+ logged_in_platform_admin_client.get(url_for('main.platform_admin'))
aggregate_stats_mock.assert_called_with(api_args)
complaint_count_mock.assert_called_with(api_args)
-def test_platform_admin_new_displays_stats_in_right_boxes_and_with_correct_styling(
+def test_platform_admin_displays_stats_in_right_boxes_and_with_correct_styling(
mocker,
logged_in_platform_admin_client,
):
@@ -809,7 +703,7 @@ def test_platform_admin_new_displays_stats_in_right_boxes_and_with_correct_styli
return_value=platform_stats)
mocker.patch('app.main.views.platform_admin.complaint_api_client.get_complaint_count', return_value=15)
- response = logged_in_platform_admin_client.get(url_for('main.platform_admin_new'))
+ response = logged_in_platform_admin_client.get(url_for('main.platform_admin'))
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
# Email permanent failure status box - number is correct
diff --git a/tests/conftest.py b/tests/conftest.py
index d85e1d61a..f9cb681c5 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -2670,17 +2670,6 @@ def normalize_spaces(input):
return normalize_spaces(' '.join(item.text for item in input))
-@pytest.fixture(scope='function')
-def mock_get_aggregate_platform_stats(mocker):
- stats = {
- 'email': {'requested': 0, 'delivered': 0, 'failed': 0},
- 'sms': {'requested': 0, 'delivered': 0, 'failed': 0},
- 'letter': {'requested': 0, 'delivered': 0, 'failed': 0}
-
- }
- return mocker.patch('app.service_api_client.get_aggregate_platform_stats', return_value=stats)
-
-
@pytest.fixture(scope='function')
def mock_get_free_sms_fragment_limit(mocker):
sample_limit = 250000