Skip to content

Commit

Permalink
fix(plugin-chart-echarts): order by timeseries limit metric (#1156)
Browse files Browse the repository at this point in the history
  • Loading branch information
villebro authored and zhaoyongjie committed Nov 26, 2021
1 parent 6b4480b commit 2023dc0
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ export default function buildQuery(formData: QueryFormData) {
{
...baseQueryObject,
is_timeseries: true,
orderby: timeseries_limit_metric ? [[timeseries_limit_metric, !order_desc]] : [],
post_processing: [
{
operation: 'pivot',
Expand All @@ -82,6 +83,7 @@ export default function buildQuery(formData: QueryFormData) {
{
...baseQueryObject,
is_timeseries: true,
orderby: timeseries_limit_metric_b ? [[timeseries_limit_metric_b, !order_desc_b]] : [],
post_processing: [
{
operation: 'pivot',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,17 @@ import { buildQueryContext, getMetricLabel, QueryFormData } from '@superset-ui/c
export default function buildQuery(formData: QueryFormData) {
return buildQueryContext(formData, baseQueryObject => {
const metricLabels = (baseQueryObject.metrics || []).map(getMetricLabel);
const { timeseries_limit_metric, order_desc, orderby } = baseQueryObject;
return [
{
...baseQueryObject,
groupby: formData.groupby || [],
is_timeseries: true,
orderby: orderby?.length
? orderby
: timeseries_limit_metric
? [[timeseries_limit_metric, !order_desc]]
: [],
post_processing: [
{
operation: 'pivot',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,33 @@ describe('Timeseries buildQuery', () => {
expect(query.groupby).toEqual(['foo']);
expect(query.metrics).toEqual(['bar', 'baz']);
});

it('should order by timeseries limit if orderby unspecified', () => {
const queryContext = buildQuery({
...formData,
timeseries_limit_metric: 'bar',
order_desc: true,
});
const [query] = queryContext.queries;
expect(query.groupby).toEqual(['foo']);
expect(query.metrics).toEqual(['bar', 'baz']);
expect(query.timeseries_limit_metric).toEqual('bar');
expect(query.order_desc).toEqual(true);
expect(query.orderby).toEqual([['bar', false]]);
});

it('should not order by timeseries limit if orderby provided', () => {
const queryContext = buildQuery({
...formData,
timeseries_limit_metric: 'bar',
order_desc: true,
orderby: [['foo', true]],
});
const [query] = queryContext.queries;
expect(query.groupby).toEqual(['foo']);
expect(query.metrics).toEqual(['bar', 'baz']);
expect(query.timeseries_limit_metric).toEqual('bar');
expect(query.order_desc).toEqual(true);
expect(query.orderby).toEqual([['foo', true]]);
});
});

0 comments on commit 2023dc0

Please sign in to comment.