From 61349b92e8a2946d7670aabeca22d8d68ea6d965 Mon Sep 17 00:00:00 2001 From: Victor Malai Date: Fri, 12 Feb 2021 11:38:49 +0200 Subject: [PATCH] feat(plugin-chart-horizon): Add sort by & Add no default sorting if checkbox is not selected --- superset/viz.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/superset/viz.py b/superset/viz.py index 23d6b50fec7d9..004a8b90a0dfe 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -870,7 +870,8 @@ def query_obj(self) -> QueryObjectDict: sort_by_label = utils.get_metric_name(sort_by) if sort_by_label not in d["metrics"]: d["metrics"].append(sort_by) - d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] return d @staticmethod @@ -977,7 +978,8 @@ def query_obj(self) -> QueryObjectDict: sort_by_label = utils.get_metric_name(sort_by) if sort_by_label not in d["metrics"]: d["metrics"].append(sort_by) - d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] return d def _nest(self, metric: str, df: pd.DataFrame) -> List[Dict[str, Any]]: @@ -1646,7 +1648,8 @@ def query_obj(self) -> QueryObjectDict: sort_by_label = utils.get_metric_name(sort_by) if sort_by_label not in d["metrics"]: d["metrics"].append(sort_by) - d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] return d @@ -2113,7 +2116,8 @@ def query_obj(self) -> QueryObjectDict: sort_by_label = utils.get_metric_name(sort_by) if sort_by_label not in d["metrics"]: d["metrics"].append(sort_by) - d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] return d def get_data(self, df: pd.DataFrame) -> VizData: @@ -2187,6 +2191,18 @@ class HorizonViz(NVD3TimeSeriesViz): "d3-horizon-chart" ) + 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"]: + d["metrics"].append(sort_by) + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + return d + class MapboxViz(BaseViz): @@ -2811,7 +2827,8 @@ def query_obj(self) -> QueryObjectDict: sort_by_label = utils.get_metric_name(sort_by) if sort_by_label not in d["metrics"]: d["metrics"].append(sort_by) - d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] return d def get_data(self, df: pd.DataFrame) -> VizData: @@ -2877,7 +2894,8 @@ def query_obj(self) -> QueryObjectDict: sort_by_label = utils.get_metric_name(sort_by) if sort_by_label not in d["metrics"]: d["metrics"].append(sort_by) - d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] + if self.form_data.get("order_desc"): + d["orderby"] = [(sort_by, not self.form_data.get("order_desc", True))] return d def get_data(self, df: pd.DataFrame) -> VizData: