diff --git a/app/main/views/jobs.py b/app/main/views/jobs.py index 10c8a91e4..9d0b22ab0 100644 --- a/app/main/views/jobs.py +++ b/app/main/views/jobs.py @@ -216,6 +216,11 @@ def get_notifications(service_id, message_type, status_override=None): abort(404) filter_args = parse_filter_args(request.args) filter_args['status'] = set_status_filters(filter_args) + + service_data_retention_days = service_api_client.get_service_data_retention_by_notification_type( + service_id, message_type + ).get('days_of_retention', current_app.config['ACTIVITY_STATS_LIMIT_DAYS']) + if request.path.endswith('csv') and current_user.has_permissions('view_activity'): return Response( generate_notifications_csv( @@ -224,7 +229,7 @@ def get_notifications(service_id, message_type, status_override=None): page_size=5000, template_type=[message_type], status=filter_args.get('status'), - limit_days=current_app.config['ACTIVITY_STATS_LIMIT_DAYS'] + limit_days=service_data_retention_days ), mimetype='text/csv', headers={ @@ -235,7 +240,7 @@ def get_notifications(service_id, message_type, status_override=None): page=page, template_type=[message_type] if message_type else [], status=filter_args.get('status'), - limit_days=current_app.config['ACTIVITY_STATS_LIMIT_DAYS'], + limit_days=service_data_retention_days, to=request.form.get('to', ''), ) url_args = { @@ -262,13 +267,18 @@ def get_notifications(service_id, message_type, status_override=None): download_link = None return { + 'service_data_retention_days': service_data_retention_days, 'counts': render_template( 'views/activity/counts.html', status=request.args.get('status'), status_filters=get_status_filters( current_service, message_type, - service_api_client.get_service_statistics(service_id, today_only=False) + service_api_client.get_service_statistics( + service_id, + today_only=False, + limit_days=service_data_retention_days + ) ) ), 'notifications': render_template( @@ -277,6 +287,7 @@ def get_notifications(service_id, message_type, status_override=None): notifications['notifications'] )), page=page, + limit_days=service_data_retention_days, prev_page=prev_page, next_page=next_page, status=request.args.get('status'), diff --git a/app/templates/views/activity/notifications.html b/app/templates/views/activity/notifications.html index a4bc2a3c8..d2b8e3465 100644 --- a/app/templates/views/activity/notifications.html +++ b/app/templates/views/activity/notifications.html @@ -11,7 +11,7 @@ notifications, caption="Recent activity", caption_visible=False, - empty_message='No messages found  (messages are kept for 7 days)'|safe, + empty_message='No messages found  (messages are kept for {} days)'.format(limit_days)|safe, field_headings=['Recipient', 'Status'], field_headings_visible=False ) %} diff --git a/app/templates/views/notifications.html b/app/templates/views/notifications.html index 6f361d708..41c89b5d6 100644 --- a/app/templates/views/notifications.html +++ b/app/templates/views/notifications.html @@ -58,7 +58,7 @@

Download this report   - Data available for 7 days + Data available for {{ partials.service_data_retention_days }} days

{% endif %} diff --git a/tests/app/main/views/test_activity.py b/tests/app/main/views/test_activity.py index 5a0c2e397..2dfc2a198 100644 --- a/tests/app/main/views/test_activity.py +++ b/tests/app/main/views/test_activity.py @@ -145,7 +145,7 @@ def test_can_show_notifications( **extra_args )) json_content = json.loads(json_response.get_data(as_text=True)) - assert json_content.keys() == {'counts', 'notifications'} + assert json_content.keys() == {'counts', 'notifications', 'service_data_retention_days'} @pytest.mark.parametrize('user, query_parameters, expected_download_link', [