Skip to content
Snippets Groups Projects
Commit 16483b6c authored by Tim Fechner's avatar Tim Fechner
Browse files

Merge branch 'improve_dashboard' into 'master'

Improve dashboard, add numberic statistic fields



See merge request !1
parents 1ca651a7 0d2af35b
Branches
No related tags found
1 merge request!1Improve dashboard, add numberic statistic fields
Pipeline #
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
@import (inline) "../../../node_modules/vis/dist/vis.css"; @import (inline) "../../../node_modules/vis/dist/vis.css";
/* Now import own styles */ /* Now import own styles */
@import "variables.less";
@import "base.less"; @import "base.less";
@import "login.less"; @import "login.less";
@import "sidebar.less"; @import "sidebar.less";
......
...@@ -6,3 +6,18 @@ ...@@ -6,3 +6,18 @@
border-top: 1px solid #ddd; border-top: 1px solid #ddd;
} }
.numeric-info {
text-align: center;
border: 1px solid #ddd;
padding: 25px 0px;
margin-bottom: 25px;
.number {
display: block;
font-size: 35px;
}
.description {
display: block;
}
}
@navy: #001f3f;
@blue: #0074D9;
@aqua: #7FDBFF;
@teal: #39CCCC;
@olive: #3D9970;
@green: #2ECC40;
@lime: #01FF70;
@yellow: #FFDC00;
@orange: #FF851B;
@red: #FF4136;
@maroon: #85144b;
@fuchsia: #F012BE;
@purple: #B10DC9;
@black: #111111;
@gray: #AAAAAA;
@silver: #DDDDDD;
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -6,12 +6,35 @@ ...@@ -6,12 +6,35 @@
{% block home-content %} {% block home-content %}
<div class="row"> <div class="row">
<div class="col-md-6 col-lg-8"> <div class="col-sm-6 col-md-3">
<div class="numeric-info">
<span class="number">{{ all_minions|length }}</span>
<span class="description">Minions</span>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="numeric-info">
<span class="number">{{ all_networks|length }}</span>
<span class="description">Networks</span>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="numeric-info">
<span class="number">{{ all_domains|length }}</span>
<span class="description">Domains</span>
</div>
</div>
<div class="col-sm-6 col-md-3">
<div class="numeric-info">
<span class="number">{{ all_users|length }}</span>
<span class="description">Users</span>
</div>
</div>
</div> </div>
<div class="col-md-6 col-lg-4">
<div class="panel panel-danger"> <div class="row">
<div class="col-lg-4">
<div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Fullest 5 Minions</h3> <h3 class="panel-title">Fullest 5 Minions</h3>
</div> </div>
...@@ -32,8 +55,9 @@ ...@@ -32,8 +55,9 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
<div class="panel panel-info"> <div class="col-lg-4">
<div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Worst 5 outdated Minions</h3> <h3 class="panel-title">Worst 5 outdated Minions</h3>
</div> </div>
...@@ -54,8 +78,9 @@ ...@@ -54,8 +78,9 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
<div class="panel panel-info"> <div class="col-lg-4">
<div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Worst 5 Certs</h3> <h3 class="panel-title">Worst 5 Certs</h3>
</div> </div>
......
from django.contrib.auth.models import User
from django.template import Context, Template from django.template import Context, Template
from django.views.generic import View, TemplateView from django.views.generic import View, TemplateView
from django.views.generic.list import ListView from django.views.generic.list import ListView
...@@ -69,11 +70,19 @@ class Dashboard(TemplateView): ...@@ -69,11 +70,19 @@ class Dashboard(TemplateView):
template_name = 'home/dashboard.html' template_name = 'home/dashboard.html'
def get_context_data(self, *args, **kwargs): def get_context_data(self, *args, **kwargs):
all_minions = Minion.objects.all()
all_networks = Network.objects.all()
all_domains = Domain.objects.all()
ctx = super().get_context_data(*args, **kwargs) ctx = super().get_context_data(*args, **kwargs)
ctx.update({ ctx.update({
'w5_outdated_minions': sorted(Minion.objects.all(), key=lambda m: m.outdated_package_count(), reverse=True)[:5], 'all_minions': all_minions,
'w5_fullest_minions': sorted(Minion.objects.all(), key=lambda m: m.fullest_partition_percentage(), reverse=True)[:5], 'all_networks': all_networks,
'w5_domain_ssl_grades': sorted(Domain.objects.all(), key=lambda d: d.worst_grade(), reverse=True)[:5], 'all_domains': all_domains,
'all_users': User.objects.all(),
'w5_outdated_minions': sorted(all_minions, key=lambda m: m.outdated_package_count(), reverse=True)[:5],
'w5_fullest_minions': sorted(all_minions, key=lambda m: m.fullest_partition_percentage(), reverse=True)[:5],
'w5_domain_ssl_grades': sorted(all_domains, key=lambda d: d.worst_grade(), reverse=True)[:5],
}) })
return ctx return ctx
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment