mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 00:07:02 -04:00
Merge pull request #1382 from alphagov/break-up-platform-admin
Break up platform admin
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user