Skip to content
Snippets Groups Projects
Commit 057d6b5f authored by Jiří Setnička's avatar Jiří Setnička
Browse files

Jinja filter mailto a jeho použití

Issue #18
parent 04430720
No related branches found
No related tags found
1 merge request!52Drobnosti
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
from flask import url_for from flask import url_for
import json import json
from html import escape
from markupsafe import Markup from markupsafe import Markup
from typing import Any from typing import Any
import urllib.parse
import mo.config as config import mo.config as config
import mo.db as db import mo.db as db
...@@ -67,6 +69,12 @@ def pion_link(u: db.User, contest_id: int) -> Markup: ...@@ -67,6 +69,12 @@ def pion_link(u: db.User, contest_id: int) -> Markup:
return Markup('<a href="{url}">{name}{test}</a>').format(url=url, name=u.full_name(), test=" (test)" if u.is_test else "") 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 mailto(email: str) -> Markup:
safe_email = urllib.parse.quote(email, safe='@')
return Markup(f'<a href="mailto:{escape(safe_email)}">{escape(email)}</a>')
@app.template_filter() @app.template_filter()
def or_dash(s: Any) -> str: def or_dash(s: Any) -> str:
return str(s) if s else '' return str(s) if s else ''
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<footer> <footer>
<hr> <hr>
<div class="content"> <div class="content">
<p>V případě problémů napište správci na adresu <a href='mailto:osmo@mo.mff.cuni.cz'>osmo@mo.mff.cuni.cz</a>. <p>V případě problémů napište správci na adresu {{ 'osmo@mo.mff.cuni.cz'|mailto }}.
Více viz <a href='{{ url_for('doc_about') }}'>o aplikaci</a> a Více viz <a href='{{ url_for('doc_about') }}'>o aplikaci</a> a
<a href='{{ url_for('doc_gdpr') }}'>zpracování osobních údajů</a>. <a href='{{ url_for('doc_gdpr') }}'>zpracování osobních údajů</a>.
</div> </div>
......
...@@ -13,6 +13,6 @@ ...@@ -13,6 +13,6 @@
MFF UK také děkujeme za poskytnutí serveru, kde systém běží. MFF UK také děkujeme za poskytnutí serveru, kde systém běží.
<p>Veškeré připomínky k chodu systému a nápady na další rozvoj <p>Veškeré připomínky k chodu systému a nápady na další rozvoj
prosím posílejte e-mailem na <a href='mailto:osmo@mo.mff.cuni.cz'>osmo@mo.mff.cuni.cz</a>. prosím posílejte e-mailem na {{ 'osmo@mo.mff.cuni.cz'|mailto }}.
{% endblock %} {% endblock %}
...@@ -19,7 +19,7 @@ Data nebudou předávána třetím stranám a budou uchovávána maximálně 2 r ...@@ -19,7 +19,7 @@ Data nebudou předávána třetím stranám a budou uchovávána maximálně 2 r
Tento odstavec se netýká zveřejněných výsledkových listin. Tento odstavec se netýká zveřejněných výsledkových listin.
<p>Souhlas se zpracováním osobních údajů můžete kdykoliv odvolat zasláním e-mailu na adresu <p>Souhlas se zpracováním osobních údajů můžete kdykoliv odvolat zasláním e-mailu na adresu
<a href='mailto:osmo@mo.mff.cuni.cz'>osmo@mo.mff.cuni.cz</a>. Údaje z&nbsp;již zveřejněných výsledkových {{ 'osmo@mo.mff.cuni.cz'|mailto }}. Údaje z&nbsp;již zveřejněných výsledkových
listin nicméně není možné zpětně odstranit. listin nicméně není možné zpětně odstranit.
<p>Dále máte právo: <p>Dále máte právo:
...@@ -33,6 +33,6 @@ listin nicméně není možné zpětně odstranit. ...@@ -33,6 +33,6 @@ listin nicméně není možné zpětně odstranit.
</ul> </ul>
<p>V&nbsp;případě jakéhokoliv dotazu nebo uplatnění svých práv můžete kontaktovat univerzitního <p>V&nbsp;případě jakéhokoliv dotazu nebo uplatnění svých práv můžete kontaktovat univerzitního
pověřence pro ochranu osobních údajů na e-mailové adrese <a href='mailto:gdpr@cuni.cz'>gdpr@cuni.cz</a>. pověřence pro ochranu osobních údajů na e-mailové adrese {{ 'gdpr@cuni.cz'|mailto }}.
{% endblock %} {% endblock %}
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</thead> </thead>
<tr><td>Jméno:<td>{{ user.first_name }} <tr><td>Jméno:<td>{{ user.first_name }}
<tr><td>Příjmení:<td>{{ user.last_name }} <tr><td>Příjmení:<td>{{ user.last_name }}
<tr><td>E-mail:<td><a href="mailto:{{ user.email }}">{{ user.email }}</a> <tr><td>E-mail:<td>{{ user.email|mailto }}
<tr><td>Škola:<td><a href='{{ url_for('org_place', id=pant.school) }}'>{{ pant.school_place.name }}</a> <tr><td>Škola:<td><a href='{{ url_for('org_place', id=pant.school) }}'>{{ pant.school_place.name }}</a>
<tr><td>Třída:<td>{{ pant.grade }} <tr><td>Třída:<td>{{ pant.grade }}
<tr><td>Rok narození:<td>{{ pant.birth_year }} <tr><td>Rok narození:<td>{{ pant.birth_year }}
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<table class=data> <table class=data>
<tr><td>Jméno:<td>{{ user.first_name }} <tr><td>Jméno:<td>{{ user.first_name }}
<tr><td>Příjmení:<td>{{ user.last_name }} <tr><td>Příjmení:<td>{{ user.last_name }}
<tr><td>E-mail:<td><a href="mailto:{{ user.email }}">{{ user.email }}</a> <tr><td>E-mail:<td>{{ user.email|mailto }}
{% if user.is_admin %}<tr><td>Správce:<td>ano{% endif %} {% if user.is_admin %}<tr><td>Správce:<td>ano{% endif %}
{% if user.is_org %}<tr><td>Organizátor:<td>ano{% endif %} {% if user.is_org %}<tr><td>Organizátor:<td>ano{% endif %}
<tr><td>Účet založen:<td>{{ user.created_at|timeformat }} <tr><td>Účet založen:<td>{{ user.created_at|timeformat }}
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
{% for user in users %} {% for user in users %}
<tr> <tr>
<td>{{ user.first_name }}</td><td>{{ user.last_name }}</td> <td>{{ user.first_name }}</td><td>{{ user.last_name }}</td>
<td><a href="mailto:{{ user.email }}">{{ user.email }}</a>{% if user.password_hash == None %}<span class="user-inactive" title='Účet dosud nebyl aktivován'> *</span>{% endif %}</td> <td>{{ user.email|mailto }}{% if user.password_hash == None %}<span class="user-inactive" title='Účet dosud nebyl aktivován'> *</span>{% endif %}</td>
<td>{% if user.is_admin %}správce{% elif user.roles|count == 0 %}<i>žádná role</i>{% else %} <td>{% if user.is_admin %}správce{% elif user.roles|count == 0 %}<i>žádná role</i>{% else %}
<ul> <ul>
{% for role in user.roles %} {% for role in user.roles %}
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<table class=data> <table class=data>
<tr><td>Jméno:<td>{{ user.first_name }} <tr><td>Jméno:<td>{{ user.first_name }}
<tr><td>Příjmení:<td>{{ user.last_name }} <tr><td>Příjmení:<td>{{ user.last_name }}
<tr><td>E-mail:<td><a href="mailto:{{ user.email }}">{{ user.email }}</a> <tr><td>E-mail:<td>{{ user.email|mailto }}
{% if user.is_admin %}<tr><td>Správce:<td>ano{% endif %} {% if user.is_admin %}<tr><td>Správce:<td>ano{% endif %}
{% if user.is_org %}<tr><td>Organizátor:<td>ano{% endif %} {% if user.is_org %}<tr><td>Organizátor:<td>ano{% endif %}
<tr><td>Účet založen:<td>{{ user.created_at|timeformat }} <tr><td>Účet založen:<td>{{ user.created_at|timeformat }}
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<table class=data> <table class=data>
<tr><td>Jméno:</td><td>{{ user.first_name }}</td></tr> <tr><td>Jméno:</td><td>{{ user.first_name }}</td></tr>
<tr><td>Příjmení:</td><td>{{ user.last_name }}</td></tr> <tr><td>Příjmení:</td><td>{{ user.last_name }}</td></tr>
<tr><td>E-mail:</td><td><a href="mailto:{{ user.email }}">{{ user.email }}</a></td></tr> <tr><td>E-mail:</td><td>{{ user.email|mailto }}</td></tr>
{% if user.is_admin %}<tr><td>Správce:</td><td>ano</td></tr>{% endif %} {% if user.is_admin %}<tr><td>Správce:</td><td>ano</td></tr>{% endif %}
{% if user.is_org %}<tr><td>Organizátor:</td><td>ano</td></tr>{% endif %} {% if user.is_org %}<tr><td>Organizátor:</td><td>ano</td></tr>{% endif %}
<tr><td>Poznámka:</td><td style="white-space: pre;">{{ user.note }}</td></tr> <tr><td>Poznámka:</td><td style="white-space: pre;">{{ user.note }}</td></tr>
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
{% for user in users %} {% for user in users %}
<tr{% if user.is_test %} class="testuser" title="Testovací uživatel"{% endif %}> <tr{% if user.is_test %} class="testuser" title="Testovací uživatel"{% endif %}>
<td>{{ user.first_name }}</td><td>{{ user.last_name }}</td> <td>{{ user.first_name }}</td><td>{{ user.last_name }}</td>
<td><a href="mailto:{{ user.email }}">{{ user.email }}</a>{% if user.password_hash == None %}<span class="user-inactive" title='Účet dosud nebyl aktivován'> *</span>{% endif %}</td> <td>{{ user.email|mailto }}{% if user.password_hash == None %}<span class="user-inactive" title='Účet dosud nebyl aktivován'> *</span>{% endif %}</td>
<td>{% if user.participants|count == 0 %}<i>v žádném ročníku</i>{% else %} <td>{% if user.participants|count == 0 %}<i>v žádném ročníku</i>{% else %}
<ul> <ul>
{% for participant in user.participants %} {% for participant in user.participants %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment