diff --git a/superset/tasks/slack_util.py b/superset/tasks/slack_util.py index 64e992390da3..a646d7df77a8 100644 --- a/superset/tasks/slack_util.py +++ b/superset/tasks/slack_util.py @@ -18,15 +18,13 @@ from io import IOBase from typing import cast, Optional, Union +from flask import current_app from retry.api import retry from slack import WebClient from slack.errors import SlackApiError from slack.web.slack_response import SlackResponse -from superset import app - # Globals -config = app.config logger = logging.getLogger("tasks.slack_util") @@ -37,6 +35,7 @@ def deliver_slack_msg( body: str, file: Optional[Union[str, IOBase, bytes]], ) -> None: + config = current_app.config client = WebClient(token=config["SLACK_API_TOKEN"], proxy=config["SLACK_PROXY"]) # files_upload returns SlackResponse as we run it in sync mode. if file: diff --git a/superset/viz.py b/superset/viz.py index 5dc05edfc98a..006062155903 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -322,7 +322,8 @@ def query_obj(self) -> QueryObjectDict: gb = self.groupby metrics = self.all_metrics or [] columns = form_data.get("columns") or [] - groupby = list(set(gb + columns)) + # merge list and dedup while preserving order + groupby = list(OrderedDict.fromkeys(gb + columns)) is_timeseries = self.is_timeseries if DTTM_ALIAS in groupby: