apeed up about page loading

add some neat info
This commit is contained in:
aronwk-aaron 2022-11-17 22:41:43 -06:00
parent 37af644078
commit f643f428ea
2 changed files with 53 additions and 3 deletions

View File

@ -4,6 +4,9 @@ from flask_user import current_user, login_required
from app.models import Account, CharacterInfo, ActivityLog
from app.schemas import AccountSchema, CharacterInfoSchema
import datetime
import time
main_blueprint = Blueprint('main', __name__)
account_schema = AccountSchema()
@ -30,10 +33,14 @@ def about():
"""About Page"""
mods = Account.query.filter(Account.gm_level > 0).order_by(Account.gm_level.desc()).all()
online = 0
chars = CharacterInfo.query.all()
users = []
zones = {}
twodaysago = time.mktime((datetime.datetime.now() - datetime.timedelta(days=2)).timetuple())
chars = CharacterInfo.query.filter(CharacterInfo.last_login >= twodaysago).all()
for char in chars:
last_log = ActivityLog.query.with_entities(
ActivityLog.activity
ActivityLog.activity, ActivityLog.map_id
).filter(
ActivityLog.character_id == char.id
).order_by(ActivityLog.id.desc()).first()
@ -41,8 +48,13 @@ def about():
if last_log:
if last_log[0] == 0:
online += 1
if current_user.gm_level >= 8: users.append([char.name, last_log[1]])
if str(last_log[1]) not in zones:
zones[str(last_log[1])] = 1
else:
zones[str(last_log[1])] += 1
return render_template('main/about.html.j2', mods=mods, online=online)
return render_template('main/about.html.j2', mods=mods, online=online, users=users, zones=zones)
@main_blueprint.route('/favicon.ico')

View File

@ -4,9 +4,47 @@
{% block content_before %}
Online Players: {{ online }}
{% endblock %}
{% block content %}
{# show general zone info to everyone #}
{% if zones %}
<div class='card mx-auto mt-5 shadow-sm bg-dark border-primary'>
<div class="card-body">
{% for zone, players in zones.items() %}
<div class="row">
<div class="col text-right">
{{ zone|get_zone_name }}
</div>
<div class="col">
{{ players }}
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
{# only show this info to high level admina #}
{% if current_user.gm_level >= 8 and users|length > 0 %}
<div class='card mx-auto mt-5 shadow-sm bg-dark border-primary'>
<div class="card-body">
{% for user in users %}
<div class="row">
<div class="col text-right">
{{ user[0] }}
</div>
<div class="col">
{{ user[1]|get_zone_name }}
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}
<div class='card mx-auto mt-5 shadow-sm bg-dark border-primary'>
<div class="card-body">
<h4 class="text-center">Staff</h4>