mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-30 02:50:03 -04:00
Limit templates usage on dashboard to last 7 days
Previous the table of templates on the dashboard was for all time. This commit uses the `limit_days` parameter of the API endpoint to only show template usage from the last 7 days, aligning with the big numbers shown above.
This commit is contained in:
@@ -38,13 +38,8 @@ def service_dashboard(service_id):
|
||||
|
||||
return render_template(
|
||||
'views/dashboard/dashboard.html',
|
||||
statistics=add_rates_to(
|
||||
statistics_api_client.get_statistics_for_service(service_id, limit_days=7)['data']
|
||||
),
|
||||
templates=service_api_client.get_service_templates(service_id)['data'],
|
||||
template_statistics=aggregate_usage(
|
||||
template_statistics_client.get_template_statistics_for_service(service_id)
|
||||
)
|
||||
**get_dashboard_statistics_for_service(service_id)
|
||||
)
|
||||
|
||||
|
||||
@@ -54,12 +49,7 @@ def service_dashboard_updates(service_id):
|
||||
return jsonify(**{
|
||||
'today': render_template(
|
||||
'views/dashboard/today.html',
|
||||
statistics=add_rates_to(
|
||||
statistics_api_client.get_statistics_for_service(service_id, limit_days=7)['data']
|
||||
),
|
||||
template_statistics=aggregate_usage(
|
||||
template_statistics_client.get_template_statistics_for_service(service_id)
|
||||
)
|
||||
**get_dashboard_statistics_for_service(service_id)
|
||||
)
|
||||
})
|
||||
|
||||
@@ -125,3 +115,14 @@ def aggregate_usage(template_statistics):
|
||||
key=lambda row: row['usage_count'],
|
||||
reverse=True
|
||||
)
|
||||
|
||||
|
||||
def get_dashboard_statistics_for_service(service_id):
|
||||
return {
|
||||
'statistics': add_rates_to(
|
||||
statistics_api_client.get_statistics_for_service(service_id, limit_days=7)['data']
|
||||
),
|
||||
'template_statistics': aggregate_usage(
|
||||
template_statistics_client.get_template_statistics_for_service(service_id, limit_days=7)
|
||||
)
|
||||
}
|
||||
@@ -12,7 +12,11 @@ class TemplateStatisticsApiClient(BaseAPIClient):
|
||||
self.client_id = app.config['ADMIN_CLIENT_USER_NAME']
|
||||
self.secret = app.config['ADMIN_CLIENT_SECRET']
|
||||
|
||||
def get_template_statistics_for_service(self, service_id):
|
||||
def get_template_statistics_for_service(self, service_id, limit_days=None):
|
||||
params = {}
|
||||
if limit_days is not None:
|
||||
params['limit_days'] = limit_days
|
||||
return self.get(
|
||||
url='/service/{}/template-statistics'.format(service_id),
|
||||
params=params
|
||||
)['data']
|
||||
|
||||
@@ -14,4 +14,4 @@ def test_template_statistics_client_calls_correct_api_endpoint(mocker, api_user_
|
||||
|
||||
client.get_template_statistics_for_service(some_service_id)
|
||||
|
||||
mock_get.assert_called_once_with(url=expected_url)
|
||||
mock_get.assert_called_once_with(url=expected_url, params={})
|
||||
|
||||
@@ -78,7 +78,7 @@ def test_should_show_recent_templates_on_dashboard(app_,
|
||||
assert response.status_code == 200
|
||||
response.get_data(as_text=True)
|
||||
mock_get_service_statistics.assert_called_once_with(SERVICE_ONE_ID, limit_days=7)
|
||||
mock_template_stats.assert_called_once_with(SERVICE_ONE_ID)
|
||||
mock_template_stats.assert_called_once_with(SERVICE_ONE_ID, limit_days=7)
|
||||
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
headers = [header.text.strip() for header in page.find_all('h2')]
|
||||
|
||||
@@ -826,7 +826,7 @@ def mock_get_template_statistics(mocker, service_one, fake_uuid):
|
||||
"day": "2016-04-04"
|
||||
}
|
||||
|
||||
def _get_stats(service_id):
|
||||
def _get_stats(service_id, limit_days=None):
|
||||
return [data]
|
||||
|
||||
return mocker.patch(
|
||||
|
||||
Reference in New Issue
Block a user