fix(viz): apply uniform sorting to all nvd3 timeseries charts (#14539)

This commit is contained in:
Ville Brofeldt 2021-05-10 15:43:21 +03:00 committed by GitHub
parent 7a95f8f839
commit 37276e1af9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 42 deletions

View File

@ -1229,6 +1229,17 @@ class NVD3TimeSeriesViz(NVD3Viz):
is_timeseries = True
pivot_fill_value: Optional[int] = None
def query_obj(self) -> QueryObjectDict:
d = super().query_obj()
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 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))]
return d
def to_series(
self, df: pd.DataFrame, classed: str = "", title_suffix: str = ""
) -> List[Dict[str, Any]]:
@ -1645,17 +1656,6 @@ class NVD3TimeSeriesStackedViz(NVD3TimeSeriesViz):
sort_series = True
pivot_fill_value = 0
def query_obj(self) -> QueryObjectDict:
d = super().query_obj()
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 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))]
return d
class HistogramViz(BaseViz):
@ -2211,18 +2211,6 @@ class HorizonViz(NVD3TimeSeriesViz):
"d3-horizon-chart</a>"
)
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 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))]
return d
class MapboxViz(BaseViz):
@ -2914,17 +2902,6 @@ class RoseViz(NVD3TimeSeriesViz):
sort_series = False
is_timeseries = True
def query_obj(self) -> QueryObjectDict:
d = super().query_obj()
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 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))]
return d
def get_data(self, df: pd.DataFrame) -> VizData:
if df.empty:
return None
@ -2963,14 +2940,6 @@ class PartitionViz(NVD3TimeSeriesViz):
time_op = self.form_data.get("time_series_option", "not_time")
# Return time series data if the user specifies so
query_obj["is_timeseries"] = time_op != "not_time"
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 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))
]
return query_obj
def levels_for(