user_list.html: Show V2 router percentage as column
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
parent
0f82f43385
commit
c23561a8f8
|
@ -143,3 +143,23 @@ def set_user_abuse(mysql, nickname, abuse):
|
|||
LIMIT 1
|
||||
""",(abuse,nickname,))
|
||||
mysql.commit()
|
||||
|
||||
def users_v2(mysql):
|
||||
data = mysql.fetchall("""
|
||||
SELECT contact, COUNT(id) AS count, v2
|
||||
FROM router
|
||||
GROUP BY contact, v2
|
||||
""")
|
||||
|
||||
datasort = {}
|
||||
for d in data:
|
||||
contact = d["contact"].lower()
|
||||
if not contact in datasort:
|
||||
datasort[contact] = {"v2":0, "v1":0}
|
||||
if d["v2"]:
|
||||
datasort[contact]["v2"] = d["count"]
|
||||
else:
|
||||
datasort[contact]["v1"] = d["count"]
|
||||
|
||||
return datasort
|
||||
|
||||
|
|
|
@ -399,13 +399,15 @@ def user_list():
|
|||
mysql = FreifunkMySQL()
|
||||
users = mysql.fetchall("SELECT id, nickname, email, created, admin FROM users ORDER BY nickname COLLATE utf8_unicode_ci ASC")
|
||||
user_routers = stattools.router_user_sum(mysql)
|
||||
usersv2 = users_v2(mysql)
|
||||
mysql.close()
|
||||
users = mysql.utcawaretuple(users,"created")
|
||||
|
||||
return render_template("user_list.html",
|
||||
user_routers = user_routers,
|
||||
users = users,
|
||||
users_count = len(users)
|
||||
users_count = len(users),
|
||||
users_v2 = usersv2
|
||||
)
|
||||
|
||||
@app.route('/users/<nickname>', methods=['GET', 'POST'])
|
||||
|
|
|
@ -21,6 +21,32 @@ filters = Blueprint("filters", __name__)
|
|||
def sumdict(d):
|
||||
return sum(d.values())
|
||||
|
||||
@filters.app_template_filter('v2userpercent')
|
||||
def v2formatpercent(d):
|
||||
return "{:.0f}".format(v2numberpercent(d))
|
||||
|
||||
def v2numberpercent(d):
|
||||
if d.get("v1",0) > 0 or d.get("v2",0) > 0:
|
||||
return d["v2"] * 100 / ( d["v1"] + d["v2"] )
|
||||
else:
|
||||
return 0.0
|
||||
|
||||
@filters.app_template_filter('v2colorpercent')
|
||||
def v2colorpercent(d):
|
||||
pc = v2numberpercent(d)
|
||||
color = "000000"
|
||||
if pc > 99:
|
||||
color = "008800"
|
||||
elif pc > 75:
|
||||
color = "00d93d"
|
||||
elif pc > 50:
|
||||
color = "ffc926"
|
||||
elif pc > 25:
|
||||
color = "ff9326"
|
||||
elif pc > 1:
|
||||
color = "ff0000"
|
||||
return "color:#" + color
|
||||
|
||||
@filters.app_template_filter('longip')
|
||||
def longip(d):
|
||||
if len(d) > 32:
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
<th style="padding-right: 5px;">E-Mail</th>
|
||||
<th style="padding-right: 5px;">Admin</th>
|
||||
<th style="padding-right: 5px;">Created</th>
|
||||
<th style="padding-right: 5px;">V2</th>
|
||||
<th style="padding-right: 5px;">Routers</th>
|
||||
<th style="padding-right: 5px;">Clients</th>
|
||||
</tr>
|
||||
|
@ -41,6 +42,7 @@
|
|||
<span class="glyphicon glyphicon-remove" title="Automatically imported stub from netmon"></span>
|
||||
{%- endif -%}
|
||||
</td>
|
||||
<td style="{{users_v2.get(user.email.lower(), {})|v2colorpercent }}" data-order="{{ users_v2.get(user.email.lower(), {})|v2userpercent }}">{{ users_v2.get(user.email.lower(), {})|v2userpercent }} %</td>
|
||||
<td>{{ user_routers.get(user.email.lower(), {}).get('routers', 0) }}</td>
|
||||
<td>{{ user_routers.get(user.email.lower(), {}).get('clients', 0) }}</td>
|
||||
</tr>
|
||||
|
|
Loading…
Reference in New Issue