Merge pull request #1382 from alphagov/break-up-platform-admin

Break up platform admin
This commit is contained in:
Chris Hill-Scott
2017-07-31 09:37:20 +01:00
committed by GitHub
10 changed files with 300 additions and 175 deletions

View File

@@ -30,14 +30,41 @@ def platform_admin():
services = service_api_client.get_services(api_args)['data']
return render_template(
'views/platform-admin.html',
'views/platform-admin/index.html',
include_from_test_key=form.include_from_test_key.data,
form=form,
**get_statistics(sorted(
services,
key=lambda service: (service['active'], sum_service_usage(service), service['created_at']),
reverse=True
))
global_stats=create_global_stats(services),
)
@main.route("/platform-admin/live-services", endpoint='live_services')
@main.route("/platform-admin/trial-services", endpoint='trial_services')
@login_required
@user_has_permissions(admin_override=True)
def platform_admin_services():
form = DateFilterForm(request.args)
api_args = {'detailed': True, # 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()
services = filter_and_sort_services(
service_api_client.get_services(api_args)['data'],
trial_mode_services=request.endpoint == 'main.trial_services',
)
return render_template(
'views/platform-admin/services.html',
include_from_test_key=form.include_from_test_key.data,
form=form,
services=list(format_stats_by_service(services)),
page_title='{} services'.format(
'Trial mode' if request.endpoint == 'main.trial_services' else 'Live'
),
global_stats=create_global_stats(services),
)
@@ -48,16 +75,19 @@ def sum_service_usage(service):
return total
def get_statistics(services):
return {
'global_stats': create_global_stats(services),
'live_services': format_stats_by_service(
service for service in services if not service['restricted']
),
'trial_mode_services': format_stats_by_service(
service for service in services if service['restricted']
),
}
def filter_and_sort_services(services, trial_mode_services=False):
return (
service for service in sorted(
services,
key=lambda service: (
service['active'],
sum_service_usage(service),
service['created_at']
),
reverse=True,
)
if service['restricted'] == trial_mode_services
)
def create_global_stats(services):