From 8be21a64f185a43a2b4bf593af1826a999405272 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Wed, 17 Nov 2021 00:17:10 +0100
Subject: [PATCH] =?UTF-8?q?E-mail=20o=20nov=C3=A9=20registraci=20upozor?=
=?UTF-8?q?=C5=88uje=20na=20mo=C5=BEnost=20vypnout=20notifikace?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mo/email.py | 13 +++++++++++--
mo/web/acct.py | 1 +
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/mo/email.py b/mo/email.py
index 51a3b8f5..27213696 100644
--- a/mo/email.py
+++ b/mo/email.py
@@ -12,7 +12,7 @@ import mo.config as config
from mo.util import logger
-def send_user_email(user: db.User, subject: str, body: str) -> bool:
+def send_user_email(user: db.User, subject: str, body: str, add_footer: bool = False) -> bool:
logger.info(f'Mail: "{subject}" -> {user.email}')
mail_from = getattr(config, 'MAIL_FROM', None)
@@ -38,6 +38,11 @@ def send_user_email(user: db.User, subject: str, body: str) -> bool:
msg['Subject'] = 'OSMO – ' + subject
msg['Date'] = datetime.datetime.now()
+ if add_footer:
+ body += "\n" + ("=" * 76) + "\n"
+ body += "Pokud nechcete tyto e-maily dostávat, vypněte si notifikace v nastavení\n"
+ body += f"svého účtu na {settings_url()}."
+
msg.set_content(body, cte='quoted-printable')
mail_instead = getattr(config, 'MAIL_INSTEAD', None)
@@ -80,6 +85,10 @@ def contestant_list_url(contest: db.Contest, registered_only: bool) -> str:
return url
+def settings_url() -> str:
+ return config.WEB_ROOT + 'acct/settings'
+
+
def send_new_account_email(user: db.User, token: str) -> bool:
return send_user_email(user, 'Založen nový účet', textwrap.dedent('''\
Vítejte!
@@ -153,4 +162,4 @@ def send_join_notify_email(dest: db.User, who: db.User, contest: db.Contest) ->
{url}
Váš OSMO
- '''))
+ '''), add_footer=True)
diff --git a/mo/web/acct.py b/mo/web/acct.py
index 72ee25fe..52f39592 100644
--- a/mo/web/acct.py
+++ b/mo/web/acct.py
@@ -112,6 +112,7 @@ class AcctSettingsForm(FlaskForm):
submit = wtforms.SubmitField('Nastavit')
+# URL je explicitně uvedeno v mo.email.settings_url
@app.route('/acct/settings', methods=('GET', 'POST'))
def user_settings():
sess = db.get_session()
--
GitLab