Rename charts snippets and add register chart file

This commit is contained in:
Mouse Reeve 2021-10-04 10:42:02 -07:00
parent 2a88753e17
commit fa241b08e7
5 changed files with 46 additions and 4 deletions

View file

@ -95,9 +95,9 @@
</div>
</form>
<div class="columns">
<div class="columns is-multiline">
<div class="column">
<h3>{% trans "User signup activity" %}</h3>
<h3>{% trans "Total users" %}</h3>
<div class="box">
<canvas id="user_stats"></canvas>
</div>
@ -108,6 +108,12 @@
<canvas id="status_stats"></canvas>
</div>
</div>
<div class="column">
<h3>{% trans "User signup activity" %}</h3>
<div class="box">
<canvas id="user_stats"></canvas>
</div>
</div>
</div>
</div>
@ -115,6 +121,7 @@
{% block scripts %}
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.5.1/dist/chart.min.js"></script>
{% include 'settings/dashboard/dashboard_user_chart.html' %}
{% include 'settings/dashboard/dashboard_status_chart.html' %}
{% include 'settings/dashboard/user_chart.html' %}
{% include 'settings/dashboard/status_chart.html' %}
{% include 'settings/dashboard/registration_chart.html' %}
{% endblock %}

View file

@ -0,0 +1,24 @@
{% load i18n %}
<script>
const labels = [{% for label in registration_stats.labels %}"{{ label }}",{% endfor %}];
const data = {
labels: labels,
datasets: [{
label: '{% trans "Active this month" %}',
backgroundColor: 'rgb(75, 192, 192)',
borderColor: 'rgb(75, 192, 192)',
data: {{ register_stats.total }},
}]
};
const config = {
type: 'line',
data: data,
options: {}
};
var userStats = new Chart(
document.getElementById('user_stats'),
config
);
</script>

View file

@ -63,6 +63,16 @@ class Dashboard(View):
}
)
register_chart = Chart(
queryset=user_queryset,
queries = {
"total": lambda q, s, e: q.filter(
created_date__gt=s,
created_date__lte=e,
).count()
}
)
data = {
"start": start.strftime("%Y-%m-%d"),
"end": end.strftime("%Y-%m-%d"),
@ -79,6 +89,7 @@ class Dashboard(View):
).count(),
"user_stats": user_chart.get_chart(start, end, interval),
"status_stats": status_chart.get_chart(start, end, interval),
"register_stats": register_chart.get_chart(start, end, interval),
}
return TemplateResponse(request, "settings/dashboard/dashboard.html", data)