From cfd9e1ebcafc1c5e400eab3c05f37e2f3c753f58 Mon Sep 17 00:00:00 2001 From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz> Date: Fri, 2 Jul 2021 19:48:29 +0200 Subject: [PATCH] =?UTF-8?q?Ozna=C4=8Den=C3=AD=20neaktivovan=C3=BDch=20?= =?UTF-8?q?=C3=BA=C4=8Dt=C5=AF=20--=20vytvo=C5=99en=C3=AD=20user=5Fhtml=5F?= =?UTF-8?q?flags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vytvoření funkce a jinja filtru, které z uživatele vytvoří html obsahující `*` s popiskem pro různé flagy uživatele. Aktuálně podporované flagy jsou test user (náhrada za podbarvení šrafováním) a doposud neaktivní účet. Cílem je vytvořit rozhraní na přikreslování flagů k uživatelů, které se použije všude, kde se mluví o uživatelích. --- mo/web/jinja.py | 5 +++++ mo/web/util.py | 11 +++++++++++ static/mo.css | 3 +++ 3 files changed, 19 insertions(+) diff --git a/mo/web/jinja.py b/mo/web/jinja.py index 59c744f1..50328316 100644 --- a/mo/web/jinja.py +++ b/mo/web/jinja.py @@ -13,6 +13,7 @@ import mo.util_format as util_format from mo.web import app from mo.web.org_contest import contest_breadcrumbs from mo.web.org_place import place_breadcrumbs +from mo.web.util import user_html_flags # Konfigurace Jinjy @@ -100,3 +101,7 @@ def json_pretty(js: Any) -> str: @app.template_global() def log_url(typ: str, id: int) -> str: return url_for('org_log', typ=typ, id=id) + +@app.template_filter() +def user_flags(u: db.User) -> Markup: + return user_html_flags(u) diff --git a/mo/web/util.py b/mo/web/util.py index 4f10a68d..11e5541e 100644 --- a/mo/web/util.py +++ b/mo/web/util.py @@ -9,6 +9,7 @@ import werkzeug.exceptions import werkzeug.utils import wtforms from wtforms.fields.html5 import DecimalField +from markupsafe import Markup import mo.db as db import mo.jobs @@ -145,3 +146,13 @@ class MODecimalField(DecimalField): d /= 10 return super(MODecimalField, self)._value() + +def user_html_flags(u: db.User) -> Markup: + r = [] + if u.is_test: + r.append("<span class='user-test' title='Testovací uživatel'>*</span>") + if u.is_inactive(): + r.append("<span class='user-inactive' title='Účet dosud nebyl aktivován'>*</span>") + if len(r) == 0: + return Markup("") + return Markup(" " + "".join(r)) diff --git a/static/mo.css b/static/mo.css index 2de94b23..0c84556d 100644 --- a/static/mo.css +++ b/static/mo.css @@ -256,6 +256,9 @@ table.data tbody tr.job-failed:hover { /* Users */ +.user-test { + color: green; +} .user-inactive { color: red; } -- GitLab