forked from mirrors/bookwyrm
Adds works chart and updates colors
This commit is contained in:
parent
37cd7e684c
commit
551b49b903
6 changed files with 63 additions and 28 deletions
|
@ -102,6 +102,12 @@
|
||||||
<canvas id="user_stats"></canvas>
|
<canvas id="user_stats"></canvas>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="column is-half">
|
||||||
|
<h3>{% trans "User signup activity" %}</h3>
|
||||||
|
<div class="box">
|
||||||
|
<canvas id="register_stats"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="column is-half">
|
<div class="column is-half">
|
||||||
<h3>{% trans "Status activity" %}</h3>
|
<h3>{% trans "Status activity" %}</h3>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
@ -109,9 +115,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-half">
|
<div class="column is-half">
|
||||||
<h3>{% trans "User signup activity" %}</h3>
|
<h3>{% trans "Works created" %}</h3>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<canvas id="register_stats"></canvas>
|
<canvas id="works_stats"></canvas>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -124,4 +130,5 @@
|
||||||
{% include 'settings/dashboard/user_chart.html' %}
|
{% include 'settings/dashboard/user_chart.html' %}
|
||||||
{% include 'settings/dashboard/status_chart.html' %}
|
{% include 'settings/dashboard/status_chart.html' %}
|
||||||
{% include 'settings/dashboard/registration_chart.html' %}
|
{% include 'settings/dashboard/registration_chart.html' %}
|
||||||
|
{% include 'settings/dashboard/works_chart.html' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -8,8 +8,8 @@ var registerStats = new Chart(
|
||||||
labels: [{% for label in register_stats.labels %}"{{ label }}",{% endfor %}],
|
labels: [{% for label in register_stats.labels %}"{{ label }}",{% endfor %}],
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: '{% trans "Registrations" %}',
|
label: '{% trans "Registrations" %}',
|
||||||
backgroundColor: 'rgb(75, 192, 192)',
|
backgroundColor: 'hsl(171, 100%, 41%)',
|
||||||
borderColor: 'rgb(75, 192, 192)',
|
borderColor: 'hsl(171, 100%, 41%)',
|
||||||
data: {{ register_stats.total }},
|
data: {{ register_stats.total }},
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,8 +9,8 @@ var statusStats = new Chart(
|
||||||
labels: [{% for label in status_stats.labels %}"{{ label }}",{% endfor %}],
|
labels: [{% for label in status_stats.labels %}"{{ label }}",{% endfor %}],
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: '{% trans "Statuses posted" %}',
|
label: '{% trans "Statuses posted" %}',
|
||||||
backgroundColor: 'rgb(255, 99, 132)',
|
backgroundColor: 'hsl(141, 71%, 48%)',
|
||||||
borderColor: 'rgb(255, 99, 132)',
|
borderColor: 'hsl(141, 71%, 48%)',
|
||||||
data: {{ status_stats.total }},
|
data: {{ status_stats.total }},
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,29 +1,25 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
<script>
|
<script>
|
||||||
const labels = [{% for label in user_stats.labels %}"{{ label }}",{% endfor %}];
|
|
||||||
const data = {
|
|
||||||
labels: labels,
|
|
||||||
datasets: [{
|
|
||||||
label: '{% trans "Total" %}',
|
|
||||||
backgroundColor: 'rgb(255, 99, 132)',
|
|
||||||
borderColor: 'rgb(255, 99, 132)',
|
|
||||||
data: {{ user_stats.total }},
|
|
||||||
}, {
|
|
||||||
label: '{% trans "Active this month" %}',
|
|
||||||
backgroundColor: 'rgb(75, 192, 192)',
|
|
||||||
borderColor: 'rgb(75, 192, 192)',
|
|
||||||
data: {{ user_stats.active }},
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
|
|
||||||
const config = {
|
|
||||||
type: 'line',
|
|
||||||
data: data,
|
|
||||||
options: {}
|
|
||||||
};
|
|
||||||
|
|
||||||
var userStats = new Chart(
|
var userStats = new Chart(
|
||||||
document.getElementById('user_stats'),
|
document.getElementById('user_stats'),
|
||||||
config
|
{
|
||||||
|
type: 'line',
|
||||||
|
data: {
|
||||||
|
labels: [{% for label in user_stats.labels %}"{{ label }}",{% endfor %}],
|
||||||
|
datasets: [{
|
||||||
|
label: '{% trans "Total" %}',
|
||||||
|
backgroundColor: 'hsl(217, 71%, 53%)',
|
||||||
|
borderColor: 'hsl(217, 71%, 53%)',
|
||||||
|
data: {{ user_stats.total }},
|
||||||
|
}, {
|
||||||
|
label: '{% trans "Active this month" %}',
|
||||||
|
backgroundColor: 'hsl(171, 100%, 41%)',
|
||||||
|
borderColor: 'hsl(171, 100%, 41%)',
|
||||||
|
data: {{ user_stats.active }},
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
}
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
21
bookwyrm/templates/settings/dashboard/works_chart.html
Normal file
21
bookwyrm/templates/settings/dashboard/works_chart.html
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{% load i18n %}
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var worksStats = new Chart(
|
||||||
|
document.getElementById('works_stats'),
|
||||||
|
{
|
||||||
|
type: 'bar',
|
||||||
|
data: {
|
||||||
|
labels: [{% for label in works_stats.labels %}"{{ label }}",{% endfor %}],
|
||||||
|
datasets: [{
|
||||||
|
label: '{% trans "Works" %}',
|
||||||
|
backgroundColor: 'hsl(204, 86%, 53%)',
|
||||||
|
borderColor: 'hsl(204, 86%, 53%)',
|
||||||
|
data: {{ works_stats.total }},
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
options: {}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
|
@ -73,6 +73,16 @@ class Dashboard(View):
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
works_chart = Chart(
|
||||||
|
queryset=models.Work.objects,
|
||||||
|
queries = {
|
||||||
|
"total": lambda q, s, e: q.filter(
|
||||||
|
created_date__gt=s,
|
||||||
|
created_date__lte=e,
|
||||||
|
).count()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"start": start.strftime("%Y-%m-%d"),
|
"start": start.strftime("%Y-%m-%d"),
|
||||||
"end": end.strftime("%Y-%m-%d"),
|
"end": end.strftime("%Y-%m-%d"),
|
||||||
|
@ -90,6 +100,7 @@ class Dashboard(View):
|
||||||
"user_stats": user_chart.get_chart(start, end, interval),
|
"user_stats": user_chart.get_chart(start, end, interval),
|
||||||
"status_stats": status_chart.get_chart(start, end, interval),
|
"status_stats": status_chart.get_chart(start, end, interval),
|
||||||
"register_stats": register_chart.get_chart(start, end, interval),
|
"register_stats": register_chart.get_chart(start, end, interval),
|
||||||
|
"works_stats": works_chart.get_chart(start, end, interval),
|
||||||
}
|
}
|
||||||
return TemplateResponse(request, "settings/dashboard/dashboard.html", data)
|
return TemplateResponse(request, "settings/dashboard/dashboard.html", data)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue