diff --git a/app/assets/javascripts/totalMessagesChart.js b/app/assets/javascripts/totalMessagesChart.js index 68c9fd8f9..cf8808094 100644 --- a/app/assets/javascripts/totalMessagesChart.js +++ b/app/assets/javascripts/totalMessagesChart.js @@ -6,17 +6,17 @@ var chartTitle = document.getElementById('chartTitle').textContent; // Access data attributes from the HTML - var sms_sent = parseInt(chartContainer.getAttribute('data-sms-sent')); - var sms_remaining_messages = parseInt(chartContainer.getAttribute('data-sms-allowance-remaining')); - var totalMessages = sms_sent + sms_remaining_messages; + var messages_sent = parseInt(chartContainer.getAttribute('data-messages-sent')); + var total_message_limit = parseInt(chartContainer.getAttribute('data-total-message-limit')); + var totalMessages = messages_sent + total_message_limit; // Update the message below the chart - document.getElementById('message').innerText = `${sms_sent.toLocaleString()} sent / ${sms_remaining_messages.toLocaleString()} remaining`; + document.getElementById('message').innerText = `${messages_sent.toLocaleString()} sent / ${total_message_limit.toLocaleString()} remaining`; // Calculate minimum width for "Messages Sent" as 1% of the total chart width - var minSentPercentage = (sms_sent === 0) ? 0 : 0.02; + var minSentPercentage = (messages_sent === 0) ? 0 : 0.02; var minSentValue = totalMessages * minSentPercentage; - var displaySent = Math.max(sms_sent, minSentValue); + var displaySent = Math.max(messages_sent, minSentValue); var displayRemaining = totalMessages - displaySent; var svg = d3.select("#totalMessageChart"); @@ -48,7 +48,7 @@ .attr("width", 0) // Start with width 0 for animation .on('mouseover', function(event) { tooltip.style('display', 'block') - .html(`Messages Sent: ${sms_sent.toLocaleString()}`); + .html(`Messages Sent: ${messages_sent.toLocaleString()}`); }) .on('mousemove', function(event) { tooltip.style('left', `${event.pageX + 10}px`) @@ -66,7 +66,7 @@ .attr("width", 0) // Start with width 0 for animation .on('mouseover', function(event) { tooltip.style('display', 'block') - .html(`Remaining: ${sms_remaining_messages.toLocaleString()}`); + .html(`Remaining: ${total_message_limit.toLocaleString()}`); }) .on('mousemove', function(event) { tooltip.style('left', `${event.pageX + 10}px`) @@ -115,9 +115,9 @@ var tbodyRow = document.createElement('tr'); var tdMessagesSent = document.createElement('td'); - tdMessagesSent.textContent = sms_sent.toLocaleString(); // Value for Messages Sent + tdMessagesSent.textContent = messages_sent.toLocaleString(); // Value for Messages Sent var tdRemaining = document.createElement('td'); - tdRemaining.textContent = sms_remaining_messages.toLocaleString(); // Value for Remaining + tdRemaining.textContent = total_message_limit.toLocaleString(); // Value for Remaining tbodyRow.appendChild(tdMessagesSent); tbodyRow.appendChild(tdRemaining); diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 1f8cac573..f18aac3b8 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -48,31 +48,24 @@ def service_dashboard(service_id): if not current_user.has_permissions("view_activity"): return redirect(url_for("main.choose_template", service_id=service_id)) - yearly_usage = billing_api_client.get_annual_usage_for_service( - service_id, - get_current_financial_year(), - ) - free_sms_allowance = billing_api_client.get_free_sms_fragment_limit_for_year( - current_service.id, - ) - usage_data = get_annual_usage_breakdown(yearly_usage, free_sms_allowance) - sms_sent = usage_data["sms_sent"] - sms_allowance_remaining = usage_data["sms_allowance_remaining"] - job_response = job_api_client.get_jobs(service_id)["data"] service_data_retention_days = 7 filtered_jobs = [job for job in job_response if job["job_status"] != "cancelled"] sorted_jobs = sorted(filtered_jobs, key=lambda job: job["created_at"], reverse=True) + total_messages = service_api_client.get_service_message_ratio(service_id) + total_message_limit = total_messages.get('total_message_limit', 0) + messages_sent = total_messages.get('messages_sent', 0) + return render_template( "views/dashboard/dashboard.html", updates_url=url_for(".service_dashboard_updates", service_id=service_id), partials=get_dashboard_partials(service_id), jobs=sorted_jobs, service_data_retention_days=service_data_retention_days, - sms_sent=sms_sent, - sms_allowance_remaining=sms_allowance_remaining, + total_message_limit=total_message_limit, + messages_sent=messages_sent ) diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index 0229fee3d..09e7513bd 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -537,6 +537,10 @@ class ServiceAPIClient(NotifyAdminAPIClient): """ return self.get("/service/invite/redis/{0}".format(redis_key)) + def get_service_message_ratio(self, service_id): + return self.get( + url="service/get-service-message-ratio?service_id={0}".format(service_id), + ) service_api_client = ServiceAPIClient() diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index bd19585c3..1a515ea7e 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -26,7 +26,7 @@ {{ ajax_block(partials, updates_url, 'inbox') }} -