Select Git revision
org_contest.py
jinja.py 1.16 KiB
# Konfigurace Jinjový šablon a pomocné funkce
from flask import url_for
from markupsafe import Markup
from typing import Any
import mo.config as config
import mo.db as db
import mo.util_format as util_format
from mo.web import app
# Konfigurace Jinjy
app.jinja_options['extensions'].append('jinja2.ext.do')
app.jinja_env.lstrip_blocks = True
app.jinja_env.trim_blocks = True
# Filtry definované v mo.util_format
app.jinja_env.filters.update(timeformat=util_format.timeformat)
app.jinja_env.filters.update(inflected=util_format.inflect_number)
app.jinja_env.filters.update(timedelta=util_format.timedelta)
app.jinja_env.filters.update(time_and_timedelta=util_format.time_and_timedelta)
# Exporty proměnných
app.jinja_env.globals.update(web_flavor=config.WEB_FLAVOR)
@app.template_filter()
def user_link(u: db.User) -> Markup:
if u.is_admin or u.is_org:
url = url_for('org_org', id=u.user_id)
else:
url = url_for('org_user', id=u.user_id)
return Markup('<a href="{url}">{name}{test}</a>').format(url=url, name=u.full_name(), test=" (test)" if u.is_test else "")
@app.template_filter()
def or_dash(s: Any) -> str:
return str(s) if s else '–'