From 6935a6ae71ca65b790f9946cd2c351834a019831 Mon Sep 17 00:00:00 2001 From: Yusur Princeps Date: Mon, 7 Jul 2025 14:42:52 +0200 Subject: [PATCH] add account status to user list --- freak/filters.py | 6 ++++++ freak/templates/admin/admin_users.html | 3 ++- freak/website/admin.py | 17 ++++++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/freak/filters.py b/freak/filters.py index df56edd..f085ef9 100644 --- a/freak/filters.py +++ b/freak/filters.py @@ -40,3 +40,9 @@ def append(text, l: list): l.append(text) return None +@app.template_filter() +def faint_paren(text: str): + if not '(' in text: + return text + t1, t2, t3 = text.partition('(') + return Markup('{0} {1}').format(t1, t2 + t3) \ No newline at end of file diff --git a/freak/templates/admin/admin_users.html b/freak/templates/admin/admin_users.html index 3ec789d..58991fc 100644 --- a/freak/templates/admin/admin_users.html +++ b/freak/templates/admin/admin_users.html @@ -15,8 +15,9 @@

{% endfor %} diff --git a/freak/website/admin.py b/freak/website/admin.py index 04b1806..2cfe919 100644 --- a/freak/website/admin.py +++ b/freak/website/admin.py @@ -30,6 +30,21 @@ TARGET_TYPES = { Comment: REPORT_TARGET_COMMENT } +def account_status_string(u: User): + if u.is_active: + return 'Active' + elif u.banned_at: + s = 'Suspended' + if u.banned_until: + s += f' until {u.banned_until:%b %d, %Y %H:%M}' + if u.banned_reason in REPORT_REASON_STRINGS: + s += f' ({REPORT_REASON_STRINGS[u.banned_reason]})' + return s + elif u.is_disabled_by_user: + return 'Paused' + else: + return 'Inactive' + def remove_content(target, reason_code: int): if isinstance(target, Post): target.removed_at = datetime.datetime.now() @@ -153,4 +168,4 @@ def strikes(): def users(): user_list = db.paginate(select(User).order_by(User.joined_at.desc())) return render_template('admin/admin_users.html', - user_list=user_list) + user_list=user_list, account_status_string=account_status_string)