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