From aa479fb0020539aa2b5a8465a0cfbfbfb837217d Mon Sep 17 00:00:00 2001 From: Jason Davis <32852580+JasonD28@users.noreply.github.com> Date: Tue, 4 Aug 2020 13:20:02 -0700 Subject: [PATCH] feat: updated email format for SQL-based email alerts (#10512) * added sql statement and link to chart in alert email * pylint * updated email to include link to alert * style changes * pylint * added todo and fixed formatting of email Co-authored-by: Jason Davis <@dropbox.com> --- superset/tasks/schedules.py | 16 ++++++++-------- superset/templates/email/alert.txt | 26 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 superset/templates/email/alert.txt diff --git a/superset/tasks/schedules.py b/superset/tasks/schedules.py index a53ce08e7..78793b968 100644 --- a/superset/tasks/schedules.py +++ b/superset/tasks/schedules.py @@ -18,7 +18,6 @@ """Utility functions used across Superset""" import logging -import textwrap import time import urllib.request from collections import namedtuple @@ -585,6 +584,9 @@ def deliver_alert(alert_id: int, recipients: Optional[str] = None) -> None: image_url = get_url_path( "ChartRestApi.screenshot", pk=alert.slice.id, digest=cache_key ) + standalone_index = chart_url.find("/?standalone=true") + if standalone_index != -1: + image_url = chart_url[:standalone_index] user = security_manager.find_user(current_app.config["THUMBNAIL_SELENIUM_USER"]) img_data = screenshot.compute_and_cache( @@ -595,19 +597,17 @@ def deliver_alert(alert_id: int, recipients: Optional[str] = None) -> None: image_url = "https://media.giphy.com/media/dzaUX7CAG0Ihi/giphy.gif" # generate the email + # TODO add sql query results to email subject = f"[Superset] Triggered alert: {alert.label}" deliver_as_group = False data = None if img_data: images = {"screenshot": img_data} - body = __( - textwrap.dedent( - """\ -

Alert: %(label)s

- %(label)s - """ - ), + body = render_template( + "email/alert.txt", + alert_url=get_url_path("AlertModelView.show", pk=alert.id), label=alert.label, + sql=alert.sql, image_url=image_url, ) diff --git a/superset/templates/email/alert.txt b/superset/templates/email/alert.txt new file mode 100644 index 000000000..663b51fb5 --- /dev/null +++ b/superset/templates/email/alert.txt @@ -0,0 +1,26 @@ + +

Alert: {{label}} ⚠

+

SQL Statement:

+{{sql}} +

View Alert Details

+

Click here or the image below to view the chart related to this alert.

+ + {{label}} + \ No newline at end of file