mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 10:28:41 -04:00
Merge pull request #1662 from alphagov/rc-update-template-usage-to-use-new-end-point
Disabled the template_history endpoint
This commit is contained in:
@@ -12,6 +12,7 @@ from flask import (
|
|||||||
)
|
)
|
||||||
from flask_login import login_required
|
from flask_login import login_required
|
||||||
from notifications_utils.recipients import format_phone_number_human_readable
|
from notifications_utils.recipients import format_phone_number_human_readable
|
||||||
|
from werkzeug.utils import redirect
|
||||||
|
|
||||||
from app.main import main
|
from app.main import main
|
||||||
from app import (
|
from app import (
|
||||||
@@ -75,40 +76,12 @@ def service_dashboard_updates(service_id):
|
|||||||
@user_has_permissions('view_activity', admin_override=True)
|
@user_has_permissions('view_activity', admin_override=True)
|
||||||
def template_history(service_id):
|
def template_history(service_id):
|
||||||
|
|
||||||
year, current_financial_year = requested_and_current_financial_year(request)
|
return redirect(url_for('main.template_usage', service_id=service_id), code=301)
|
||||||
stats = template_statistics_client.get_monthly_template_statistics_for_service(service_id, year)
|
|
||||||
|
|
||||||
months = [
|
|
||||||
{
|
|
||||||
'name': yyyy_mm_to_datetime(month).strftime('%B'),
|
|
||||||
'templates_used': aggregate_usage(
|
|
||||||
format_template_stats_to_list(stats.get(month)), sort_key='requested_count'
|
|
||||||
),
|
|
||||||
}
|
|
||||||
for month in get_months_for_financial_year(year, time_format='%Y-%m')
|
|
||||||
]
|
|
||||||
|
|
||||||
return render_template(
|
|
||||||
'views/dashboard/all-template-statistics.html',
|
|
||||||
months=months,
|
|
||||||
most_used_template_count=max(
|
|
||||||
max((
|
|
||||||
template['requested_count']
|
|
||||||
for template in month['templates_used']
|
|
||||||
), default=0)
|
|
||||||
for month in months
|
|
||||||
),
|
|
||||||
years=get_tuples_of_financial_years(
|
|
||||||
partial(url_for, '.template_history', service_id=service_id),
|
|
||||||
end=current_financial_year,
|
|
||||||
),
|
|
||||||
selected_year=year,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@main.route("/services/<service_id>/template-usage")
|
@main.route("/services/<service_id>/template-usage")
|
||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions(admin_override=True)
|
@user_has_permissions('view_activity', admin_override=True)
|
||||||
def template_usage(service_id):
|
def template_usage(service_id):
|
||||||
|
|
||||||
year, current_financial_year = requested_and_current_financial_year(request)
|
year, current_financial_year = requested_and_current_financial_year(request)
|
||||||
|
|||||||
@@ -20,12 +20,6 @@ class TemplateStatisticsApiClient(NotifyAdminAPIClient):
|
|||||||
params=params
|
params=params
|
||||||
)['data']
|
)['data']
|
||||||
|
|
||||||
def get_monthly_template_statistics_for_service(self, service_id, year):
|
|
||||||
|
|
||||||
return self.get(
|
|
||||||
url='/service/{}/notifications/templates/monthly?year={}'.format(service_id, year)
|
|
||||||
)['data']
|
|
||||||
|
|
||||||
def get_monthly_template_usage_for_service(self, service_id, year):
|
def get_monthly_template_usage_for_service(self, service_id, year):
|
||||||
|
|
||||||
return self.get(
|
return self.get(
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
{% if partials['has_template_statistics'] %}
|
{% if partials['has_template_statistics'] %}
|
||||||
{{ ajax_block(partials, updates_url, 'template-statistics') }}
|
{{ ajax_block(partials, updates_url, 'template-statistics') }}
|
||||||
{{ show_more(
|
{{ show_more(
|
||||||
url_for('.template_history', service_id=current_service.id),
|
url_for('.template_usage', service_id=current_service.id),
|
||||||
'See templates used by month'
|
'See templates used by month'
|
||||||
) }}
|
) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -359,17 +359,33 @@ def test_should_show_recent_templates_on_dashboard(
|
|||||||
partial(url_for),
|
partial(url_for),
|
||||||
partial(url_for, year='2016'),
|
partial(url_for, year='2016'),
|
||||||
])
|
])
|
||||||
def test_should_show_monthly_breakdown_of_template_usage(
|
def test_should_show_redirect_from_template_history(
|
||||||
logged_in_client,
|
logged_in_client,
|
||||||
mock_get_monthly_template_statistics,
|
partial_url,
|
||||||
partial_url,
|
|
||||||
):
|
):
|
||||||
response = logged_in_client.get(
|
response = logged_in_client.get(
|
||||||
partial_url('main.template_history', service_id=SERVICE_ONE_ID, _external=True)
|
partial_url('main.template_history', service_id=SERVICE_ONE_ID, _external=True)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
assert response.status_code == 301
|
||||||
|
|
||||||
|
|
||||||
|
@freeze_time("2016-07-01 12:00") # 4 months into 2016 financial year
|
||||||
|
@pytest.mark.parametrize('partial_url', [
|
||||||
|
partial(url_for),
|
||||||
|
partial(url_for, year='2016'),
|
||||||
|
])
|
||||||
|
def test_should_show_monthly_breakdown_of_template_usage(
|
||||||
|
logged_in_client,
|
||||||
|
mock_get_monthly_template_usage,
|
||||||
|
partial_url,
|
||||||
|
):
|
||||||
|
response = logged_in_client.get(
|
||||||
|
partial_url('main.template_usage', service_id=SERVICE_ONE_ID, _external=True)
|
||||||
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
mock_get_monthly_template_statistics.assert_called_once_with(SERVICE_ONE_ID, 2016)
|
mock_get_monthly_template_usage.assert_called_once_with(SERVICE_ONE_ID, 2016)
|
||||||
|
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
table_rows = page.select('tbody tr')
|
table_rows = page.select('tbody tr')
|
||||||
|
|||||||
+10
-14
@@ -2001,22 +2001,18 @@ def mock_get_template_statistics(mocker, service_one, fake_uuid):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def mock_get_monthly_template_statistics(mocker, service_one, fake_uuid):
|
def mock_get_monthly_template_usage(mocker, service_one, fake_uuid):
|
||||||
def _stats(service_id, year):
|
def _stats(service_id, year):
|
||||||
return {
|
return [{
|
||||||
datetime.utcnow().strftime('%Y-%m'): {
|
"template_id": fake_uuid,
|
||||||
fake_uuid: {
|
"month": 4,
|
||||||
"counts": {
|
"year": year,
|
||||||
"sending": 1,
|
"count": 2,
|
||||||
"delivered": 1,
|
"name": 'My first template',
|
||||||
},
|
"type": 'sms'
|
||||||
"name": 'My first template',
|
}]
|
||||||
"type": 'sms',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return mocker.patch(
|
return mocker.patch(
|
||||||
'app.template_statistics_client.get_monthly_template_statistics_for_service',
|
'app.template_statistics_client.get_monthly_template_usage_for_service',
|
||||||
side_effect=_stats
|
side_effect=_stats
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user