fix: make SQL-based alert email links user friendly (#10519)

* make urls user friendly

* formatting

Co-authored-by: Jason Davis <@dropbox.com>
This commit is contained in:
Jason Davis 2020-08-04 15:45:38 -07:00 committed by GitHub
parent 246add45a0
commit 0d91b3ee6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -580,13 +580,15 @@ def deliver_alert(alert_id: int, recipients: Optional[str] = None) -> None:
"Superset.slice", slice_id=alert.slice.id, standalone="true" "Superset.slice", slice_id=alert.slice.id, standalone="true"
) )
screenshot = ChartScreenshot(chart_url, alert.slice.digest) screenshot = ChartScreenshot(chart_url, alert.slice.digest)
cache_key = screenshot.cache_key() image_url = _get_url_path(
image_url = get_url_path( "Superset.slice",
"ChartRestApi.screenshot", pk=alert.slice.id, digest=cache_key user_friendly=True,
slice_id=alert.slice.id,
standalone="true",
) )
standalone_index = chart_url.find("/?standalone=true") standalone_index = image_url.find("/?standalone=true")
if standalone_index != -1: if standalone_index != -1:
image_url = chart_url[:standalone_index] image_url = image_url[:standalone_index]
user = security_manager.find_user(current_app.config["THUMBNAIL_SELENIUM_USER"]) user = security_manager.find_user(current_app.config["THUMBNAIL_SELENIUM_USER"])
img_data = screenshot.compute_and_cache( img_data = screenshot.compute_and_cache(
@ -605,7 +607,7 @@ def deliver_alert(alert_id: int, recipients: Optional[str] = None) -> None:
images = {"screenshot": img_data} images = {"screenshot": img_data}
body = render_template( body = render_template(
"email/alert.txt", "email/alert.txt",
alert_url=get_url_path("AlertModelView.show", pk=alert.id), alert_url=_get_url_path("AlertModelView.show", user_friendly=True, pk=alert.id),
label=alert.label, label=alert.label,
sql=alert.sql, sql=alert.sql,
image_url=image_url, image_url=image_url,