From 49eeab6f55e9e1f35b8a46e2906fe42d1cdf1f72 Mon Sep 17 00:00:00 2001 From: Jesse Yang Date: Sun, 7 Mar 2021 19:13:54 -1000 Subject: [PATCH] fix(explore): make sure sort by metric is not duplicated (#13473) --- superset/viz.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/superset/viz.py b/superset/viz.py index b00a945cc..456254bba 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -719,7 +719,7 @@ class TableViz(BaseViz): sort_by = fd.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) d["orderby"] = [(sort_by, not fd.get("order_desc", True))] elif d["metrics"]: @@ -847,7 +847,7 @@ class PivotTableViz(BaseViz): sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -951,11 +951,10 @@ class TreemapViz(BaseViz): def query_obj(self) -> QueryObjectDict: d = super().query_obj() - metrics = self.form_data.get("metrics") sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -1637,11 +1636,10 @@ class NVD3TimeSeriesStackedViz(NVD3TimeSeriesViz): def query_obj(self) -> QueryObjectDict: d = super().query_obj() - metrics = self.form_data.get("metrics") sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -1729,7 +1727,7 @@ class DistributionBarViz(BaseViz): sort_by = fd.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) d["orderby"] = [(sort_by, not fd.get("order_desc", True))] elif d["metrics"]: @@ -2103,7 +2101,7 @@ class ParallelCoordinatesViz(BaseViz): sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -2190,7 +2188,7 @@ class HorizonViz(NVD3TimeSeriesViz): sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -2818,7 +2816,7 @@ class PairedTTestViz(BaseViz): sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -2881,11 +2879,10 @@ class RoseViz(NVD3TimeSeriesViz): def query_obj(self) -> QueryObjectDict: d = super().query_obj() - metrics = self.form_data.get("metrics") sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in d["metrics"]: + if sort_by_label not in utils.get_metric_names(d["metrics"]): d["metrics"].append(sort_by) if self.form_data.get("order_desc"): d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] @@ -2932,7 +2929,7 @@ class PartitionViz(NVD3TimeSeriesViz): sort_by = self.form_data.get("timeseries_limit_metric") if sort_by: sort_by_label = utils.get_metric_name(sort_by) - if sort_by_label not in query_obj["metrics"]: + if sort_by_label not in utils.get_metric_names(query_obj["metrics"]): query_obj["metrics"].append(sort_by) query_obj["orderby"] = [ (sort_by, not self.form_data.get("order_desc", True))