statistics.html: Show "models per client" pie chart

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler 2018-04-12 18:48:48 +02:00
parent 7203d594f3
commit af2e2591b9
3 changed files with 17 additions and 10 deletions

View File

@ -88,28 +88,28 @@ def router_status_gw(mysql):
def router_models(mysql,selecthood=None,selectgw=None):
if selecthood:
return mysql.fetchdict("""
SELECT hardware, COUNT(id) AS count
SELECT hardware, COUNT(id) AS count, SUM(clients) AS clients
FROM router
WHERE hood = %s
GROUP BY hardware
ORDER BY hardware
""",(selecthood,),"hardware","count")
""",(selecthood,),"hardware")
elif selectgw:
return mysql.fetchdict("""
SELECT hardware, COUNT(router_gw.router) AS count
SELECT hardware, COUNT(router_gw.router) AS count, SUM(clients) AS clients
FROM router
INNER JOIN router_gw ON router.id = router_gw.router
WHERE mac = %s
GROUP BY hardware
ORDER BY hardware
""",(selectgw,),"hardware","count")
""",(selectgw,),"hardware")
else:
return mysql.fetchdict("""
SELECT hardware, COUNT(id) AS count
SELECT hardware, COUNT(id) AS count, SUM(clients) AS clients
FROM router
GROUP BY hardware
ORDER BY hardware
""",(),"hardware","count")
""",(),"hardware")
def router_firmwares(mysql,selecthood=None,selectgw=None):
if selecthood:

View File

@ -479,13 +479,13 @@ function global_router_firmwares_graph() {
});
}
function global_router_models_graph() {
var placeholder = $("#globroutermodelsstat");
function global_router_models_graph(id,field) {
var placeholder = $("#"+id);
var pdata = [];
for (var mdname in router_models) {
pdata.push({
"label": mdname,
"data": [router_models[mdname]]
"data": [router_models[mdname][field]]
});
}
var plot = $.plot(placeholder, pdata, {

View File

@ -208,6 +208,12 @@
<div id="globroutermodelsstat" class="graph-pie"></div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Router Models per Client{%- if selecthood %} @ {{ selecthood }}{%- endif -%}{%- if selectgw %} @ {{ selectgw }}{%- endif -%}</div>
<div class="panel-body">
<div id="globroutermodelsperclient" class="graph-pie"></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
@ -225,7 +231,8 @@
global_client_graph();
global_router_graph();
global_router_firmwares_graph();
global_router_models_graph();
global_router_models_graph("globroutermodelsstat","count");
global_router_models_graph("globroutermodelsperclient","clients");
$("#hoodlist").DataTable({
"order": [],