mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-06 17:58:24 -04:00
fetch notification stats by user
This commit is contained in:
@@ -12,7 +12,7 @@
|
|||||||
labels: [],
|
labels: [],
|
||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: 'Delivered',
|
label: 'Requested',
|
||||||
data: [],
|
data: [],
|
||||||
backgroundColor: '#0076d6',
|
backgroundColor: '#0076d6',
|
||||||
stack: 'Stack 0'
|
stack: 'Stack 0'
|
||||||
@@ -29,23 +29,24 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
var socket = io();
|
var socket = io();
|
||||||
var serviceId = ctx.getAttribute('data-service-id');
|
|
||||||
|
|
||||||
socket.on('connect', function() {
|
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 labels = [];
|
||||||
var deliveredData = [];
|
var requestedData = [];
|
||||||
|
|
||||||
for (var date in data) {
|
for (var date in data) {
|
||||||
labels.push(date);
|
labels.push(date);
|
||||||
deliveredData.push(data[date].sms.delivered);
|
requestedData.push(data[date].sms.requested);
|
||||||
}
|
}
|
||||||
|
|
||||||
myBarChart.data.labels = labels;
|
myBarChart.data.labels = labels;
|
||||||
myBarChart.data.datasets[0].data = deliveredData;
|
myBarChart.data.datasets[0].data = requestedData;
|
||||||
myBarChart.update();
|
myBarChart.update();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -56,7 +57,8 @@
|
|||||||
var sevenDaysButton = document.getElementById('sevenDaysButton');
|
var sevenDaysButton = document.getElementById('sevenDaysButton');
|
||||||
if (sevenDaysButton) {
|
if (sevenDaysButton) {
|
||||||
sevenDaysButton.addEventListener('click', function() {
|
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")
|
@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:
|
if service_id:
|
||||||
date_range = get_stats_date_range()
|
date_range = get_stats_date_range()
|
||||||
daily_stats = service_api_client.get_service_notification_statistics_by_day(
|
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"})
|
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")
|
@main.route("/services/<uuid:service_id>/dashboard")
|
||||||
@user_has_permissions("view_activity", "send_messages")
|
@user_has_permissions("view_activity", "send_messages")
|
||||||
def old_service_dashboard(service_id):
|
def old_service_dashboard(service_id):
|
||||||
@@ -98,7 +113,6 @@ def service_dashboard(service_id):
|
|||||||
partials=get_dashboard_partials(service_id),
|
partials=get_dashboard_partials(service_id),
|
||||||
job_and_notifications=job_and_notifications,
|
job_and_notifications=job_and_notifications,
|
||||||
service_data_retention_days=service_data_retention_days,
|
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),
|
"/service/{0}/statistics/{1}/{2}".format(service_id, start_date, days),
|
||||||
)["data"]
|
)["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):
|
def get_services(self, params_dict=None):
|
||||||
"""
|
"""
|
||||||
Retrieve a list of services.
|
Retrieve a list of services.
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
Messages sent
|
Messages sent
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<!-- <button id="sevenDaysButton">7 Days</button>
|
<button id="sevenDaysButton">7 Days</button>
|
||||||
<canvas id="myChart" data-service-id="{{ service_id }}"></canvas> -->
|
<canvas id="myChart"></canvas>
|
||||||
{{ ajax_block(partials, updates_url, 'inbox') }}
|
{{ ajax_block(partials, updates_url, 'inbox') }}
|
||||||
|
|
||||||
{{ ajax_block(partials, updates_url, 'totals') }}
|
{{ ajax_block(partials, updates_url, 'totals') }}
|
||||||
|
|||||||
Reference in New Issue
Block a user