mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-28 09:59:59 -04:00
fetch notification stats by user
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
labels: [],
|
||||
datasets: [
|
||||
{
|
||||
label: 'Delivered',
|
||||
label: 'Requested',
|
||||
data: [],
|
||||
backgroundColor: '#0076d6',
|
||||
stack: 'Stack 0'
|
||||
@@ -29,23 +29,24 @@
|
||||
});
|
||||
|
||||
var socket = io();
|
||||
var serviceId = ctx.getAttribute('data-service-id');
|
||||
|
||||
socket.on('connect', function() {
|
||||
socket.emit('fetch_daily_stats', serviceId);
|
||||
socket.emit('fetch_daily_stats_by_user');
|
||||
console.log('connected')
|
||||
});
|
||||
|
||||
socket.on('daily_stats_update', function(data) {
|
||||
socket.on('daily_stats_by_user_update', function(data) {
|
||||
console.log('Data received:', data);
|
||||
var labels = [];
|
||||
var deliveredData = [];
|
||||
var requestedData = [];
|
||||
|
||||
for (var date in data) {
|
||||
labels.push(date);
|
||||
deliveredData.push(data[date].sms.delivered);
|
||||
requestedData.push(data[date].sms.requested);
|
||||
}
|
||||
|
||||
myBarChart.data.labels = labels;
|
||||
myBarChart.data.datasets[0].data = deliveredData;
|
||||
myBarChart.data.datasets[0].data = requestedData;
|
||||
myBarChart.update();
|
||||
});
|
||||
|
||||
@@ -56,7 +57,8 @@
|
||||
var sevenDaysButton = document.getElementById('sevenDaysButton');
|
||||
if (sevenDaysButton) {
|
||||
sevenDaysButton.addEventListener('click', function() {
|
||||
socket.emit('fetch_daily_stats', serviceId);
|
||||
socket.emit('fetch_daily_stats_by_user');
|
||||
console.log('clicked')
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,7 +35,8 @@ from notifications_utils.recipients import format_phone_number_human_readable
|
||||
|
||||
|
||||
@socketio.on("fetch_daily_stats")
|
||||
def handle_fetch_daily_stats(service_id):
|
||||
def handle_fetch_daily_stats():
|
||||
service_id = session.get('service_id')
|
||||
if service_id:
|
||||
date_range = get_stats_date_range()
|
||||
daily_stats = service_api_client.get_service_notification_statistics_by_day(
|
||||
@@ -46,6 +47,20 @@ def handle_fetch_daily_stats(service_id):
|
||||
emit("error", {"error": "No service_id provided"})
|
||||
|
||||
|
||||
@socketio.on("fetch_daily_stats_by_user")
|
||||
def handle_fetch_daily_stats_by_user():
|
||||
service_id = session.get('service_id')
|
||||
user_id = session.get('user_id')
|
||||
if service_id and user_id:
|
||||
date_range = get_stats_date_range()
|
||||
daily_stats_by_user = service_api_client.get_user_service_notification_statistics_by_day(
|
||||
service_id, user_id, start_date=date_range["start_date"], days=date_range["days"]
|
||||
)
|
||||
emit("daily_stats_by_user_update", daily_stats_by_user)
|
||||
else:
|
||||
emit("error", {"error": "No service_id provided"})
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/dashboard")
|
||||
@user_has_permissions("view_activity", "send_messages")
|
||||
def old_service_dashboard(service_id):
|
||||
@@ -98,7 +113,6 @@ def service_dashboard(service_id):
|
||||
partials=get_dashboard_partials(service_id),
|
||||
job_and_notifications=job_and_notifications,
|
||||
service_data_retention_days=service_data_retention_days,
|
||||
service_id=service_id,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -53,6 +53,16 @@ class ServiceAPIClient(NotifyAdminAPIClient):
|
||||
"/service/{0}/statistics/{1}/{2}".format(service_id, start_date, days),
|
||||
)["data"]
|
||||
|
||||
def get_user_service_notification_statistics_by_day(
|
||||
self, service_id, user_id, start_date=None, days=None
|
||||
):
|
||||
if start_date is None:
|
||||
start_date = datetime.now().strftime("%Y-%m-%d")
|
||||
|
||||
return self.get(
|
||||
"/service/{0}/statistics/user/{1}/{2}/{3}".format(service_id, user_id, start_date, days),
|
||||
)["data"]
|
||||
|
||||
def get_services(self, params_dict=None):
|
||||
"""
|
||||
Retrieve a list of services.
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
Messages sent
|
||||
</h2>
|
||||
|
||||
<!-- <button id="sevenDaysButton">7 Days</button>
|
||||
<canvas id="myChart" data-service-id="{{ service_id }}"></canvas> -->
|
||||
<button id="sevenDaysButton">7 Days</button>
|
||||
<canvas id="myChart"></canvas>
|
||||
{{ ajax_block(partials, updates_url, 'inbox') }}
|
||||
|
||||
{{ ajax_block(partials, updates_url, 'totals') }}
|
||||
|
||||
Reference in New Issue
Block a user