mirror of
https://github.com/apache/superset.git
synced 2024-09-12 08:39:45 -04:00
Adding the MetricsControl to the timeseries_limit_metric field
This commit is contained in:
parent
d322e48c57
commit
6f05b48385
@ -959,12 +959,14 @@ export const controls = {
|
||||
},
|
||||
|
||||
timeseries_limit_metric: {
|
||||
type: 'SelectControl',
|
||||
type: 'MetricsControl',
|
||||
label: t('Sort By'),
|
||||
default: null,
|
||||
description: t('Metric used to define the top series'),
|
||||
mapStateToProps: state => ({
|
||||
choices: (state.datasource) ? state.datasource.metrics_combo : [],
|
||||
columns: state.datasource ? state.datasource.columns : [],
|
||||
savedMetrics: state.datasource ? state.datasource.metrics : [],
|
||||
datasourceType: state.datasource && state.datasource.type,
|
||||
}),
|
||||
},
|
||||
|
||||
|
@ -1148,6 +1148,11 @@ class DruidDatasource(Model, BaseDatasource):
|
||||
metric['column']['type'].upper() == 'FLOAT'
|
||||
):
|
||||
metric['column']['type'] = 'DOUBLE'
|
||||
if (
|
||||
utils.is_adhoc_metric(timeseries_limit_metric) and
|
||||
timeseries_limit_metric['column']['type'].upper() == 'FLOAT'
|
||||
):
|
||||
timeseries_limit_metric['column']['type'] = 'DOUBLE'
|
||||
|
||||
aggregations, post_aggs = DruidDatasource.metrics_and_post_aggs(
|
||||
metrics,
|
||||
@ -1203,7 +1208,7 @@ class DruidDatasource(Model, BaseDatasource):
|
||||
logging.info('Running two-phase topn query for dimension [{}]'.format(dim))
|
||||
pre_qry = deepcopy(qry)
|
||||
if timeseries_limit_metric:
|
||||
order_by = timeseries_limit_metric
|
||||
order_by = utils.get_metric_name(timeseries_limit_metric)
|
||||
aggs_dict, post_aggs_dict = DruidDatasource.metrics_and_post_aggs(
|
||||
[timeseries_limit_metric],
|
||||
metrics_dict)
|
||||
@ -1272,7 +1277,7 @@ class DruidDatasource(Model, BaseDatasource):
|
||||
order_by = pre_qry_dims[0]
|
||||
|
||||
if timeseries_limit_metric:
|
||||
order_by = timeseries_limit_metric
|
||||
order_by = utils.get_metric_name(timeseries_limit_metric)
|
||||
aggs_dict, post_aggs_dict = DruidDatasource.metrics_and_post_aggs(
|
||||
[timeseries_limit_metric],
|
||||
metrics_dict)
|
||||
|
@ -675,8 +675,15 @@ class SqlaTable(Model, BaseDatasource):
|
||||
|
||||
ob = inner_main_metric_expr
|
||||
if timeseries_limit_metric:
|
||||
timeseries_limit_metric = metrics_dict.get(timeseries_limit_metric)
|
||||
ob = timeseries_limit_metric.sqla_col
|
||||
if utils.is_adhoc_metric(timeseries_limit_metric):
|
||||
ob = self.adhoc_metric_to_sa(timeseries_limit_metric, cols)
|
||||
elif timeseries_limit_metric in metrics_dict:
|
||||
timeseries_limit_metric = metrics_dict.get(
|
||||
timeseries_limit_metric,
|
||||
)
|
||||
ob = timeseries_limit_metric.sqla_col
|
||||
else:
|
||||
raise Exception(_("Metric '{}' is not valid".format(m)))
|
||||
direction = desc if order_desc else asc
|
||||
subq = subq.order_by(direction(ob))
|
||||
subq = subq.limit(timeseries_limit)
|
||||
|
Loading…
Reference in New Issue
Block a user