mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-11 09:28:27 -04:00
table with sending/delivered/failed stats for each service today
This commit is contained in:
@@ -2,13 +2,12 @@ from datetime import datetime
|
||||
|
||||
import pytz
|
||||
from flask import render_template
|
||||
from flask_login import login_required, current_user
|
||||
from flask_login import login_required
|
||||
|
||||
from app import statistics_api_client, service_api_client
|
||||
from app.main import main
|
||||
from app.utils import user_has_permissions
|
||||
from app.statistics_utils import sum_of_statistics, add_rates_to
|
||||
from app.notify_client.api_client import ServicesBrowsableItem
|
||||
|
||||
|
||||
@main.route("/platform-admin")
|
||||
@@ -17,13 +16,33 @@ from app.notify_client.api_client import ServicesBrowsableItem
|
||||
def platform_admin():
|
||||
return render_template(
|
||||
'views/platform-admin.html',
|
||||
global_stats=get_global_stats(),
|
||||
services=[ServicesBrowsableItem(x) for x in
|
||||
service_api_client.get_services({'user_id': current_user.id})['data']]
|
||||
**get_statistics()
|
||||
)
|
||||
|
||||
|
||||
def get_global_stats():
|
||||
def get_statistics():
|
||||
day = datetime.now(tz=pytz.timezone('Europe/London')).date()
|
||||
all_stats = statistics_api_client.get_statistics_for_all_services_for_day(day)['data']
|
||||
return add_rates_to(sum_of_statistics(all_stats))
|
||||
services = service_api_client.get_services()['data']
|
||||
service_stats = format_stats_by_service(all_stats, services)
|
||||
return {
|
||||
'global_stats': add_rates_to(sum_of_statistics(all_stats)),
|
||||
'service_stats': service_stats
|
||||
}
|
||||
|
||||
|
||||
def format_stats_by_service(all_stats, services):
|
||||
services = {service['id']: service for service in services}
|
||||
return [
|
||||
{
|
||||
'id': stats['service'],
|
||||
'name': services[stats['service']]['name'],
|
||||
'sending': (
|
||||
(stats['sms_requested'] - stats['sms_delivered'] - stats['sms_failed']) +
|
||||
(stats['emails_requested'] - stats['emails_delivered'] - stats['emails_failed'])
|
||||
),
|
||||
'delivered': stats['sms_delivered'] + stats['emails_delivered'],
|
||||
'failed': stats['sms_failed'] + stats['emails_failed']
|
||||
}
|
||||
for stats in all_stats
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user