diff --git a/files/routes/users.py b/files/routes/users.py index d7310a011..1c032326d 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -328,13 +328,32 @@ def user_voted_comments(v, username): @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID) @auth_required def banned(v): + sort = request.values.get("sort") + + page = get_page() + users = g.db.query(User).filter( User.is_banned != None, or_(User.unban_utc == 0, User.unban_utc > time.time()), - ).order_by(User.ban_reason) + ) - users = users.all() - return render_template("banned.html", v=v, users=users) + total = users.count() + + if sort == "name": + key = User.username + elif sort == "truescore": + key = User.truescore.desc() + elif sort == "ban_reason": + key = User.ban_reason + elif sort == "banned_by": + key = User.is_banned + else: + sort = "unban_utc" + key = User.unban_utc + + users = users.order_by(key).offset(PAGE_SIZE * (page - 1)).limit(PAGE_SIZE) + + return render_template("banned.html", v=v, users=users, sort=sort, total=total, page=page) @app.get("/grassed") @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400) diff --git a/files/templates/banned.html b/files/templates/banned.html index 5b01c87dc..b827a6966 100644 --- a/files/templates/banned.html +++ b/files/templates/banned.html @@ -6,24 +6,26 @@
# | -Name | - {% if v and v.admin_level >= PERMS['VIEW_LAST_ACTIVE'] -%} -Last Active | - {%- endif %} -Truescore | -Ban reason | -Banned by | -Unban in | ++ Name + | ++ Truescore + | ++ Ban reason + | ++ Banned by + | ++ Unban on + |
---|---|---|---|---|---|---|---|---|---|---|---|
{{loop.index}} | {% include "user_in_table.html" %} | - {% if v and v.admin_level >= PERMS['VIEW_LAST_ACTIVE'] -%} -- {%- endif %} | {{user.truescore}} | {{user.ban_reason | safe}} | {{user.banned_by | safe}} | @@ -33,3 +35,7 @@