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:
Richard Chapman
2017-11-27 09:39:07 +00:00
committed by GitHub
5 changed files with 35 additions and 56 deletions
+3 -30
View File
@@ -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(
+1 -1
View File
@@ -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 %}
+21 -5
View File
@@ -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
View File
@@ -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
) )