This is an automated email from the ASF dual-hosted git repository.
yongjiezhao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 2daa071633 fix: big number with trendline can't calculate cumsum
(#19542)
2daa071633 is described below
commit 2daa07163326b8555488dab523c5479cf92821cf
Author: Yongjie Zhao <[email protected]>
AuthorDate: Wed Apr 6 19:23:01 2022 +0800
fix: big number with trendline can't calculate cumsum (#19542)
---
.../BigNumber/BigNumberWithTrendline/buildQuery.ts | 56 +++++-----------------
.../BigNumberWithTrendline/controlPanel.tsx | 46 ++++++++++++++++++
2 files changed, 59 insertions(+), 43 deletions(-)
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/buildQuery.ts
b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/buildQuery.ts
index d55cf4664d..de75b50838 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/buildQuery.ts
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/buildQuery.ts
@@ -18,63 +18,33 @@
*/
import {
buildQueryContext,
- PostProcessingResample,
+ DTTM_ALIAS,
QueryFormData,
} from '@superset-ui/core';
import {
flattenOperator,
+ pivotOperator,
+ resampleOperator,
rollingWindowOperator,
- sortOperator,
} from '@superset-ui/chart-controls';
-const TIME_GRAIN_MAP: Record<string, string> = {
- PT1S: 'S',
- PT1M: 'min',
- PT5M: '5min',
- PT10M: '10min',
- PT15M: '15min',
- PT30M: '30min',
- PT1H: 'H',
- P1D: 'D',
- P1M: 'MS',
- P3M: 'QS',
- P1Y: 'AS',
- // TODO: these need to be mapped carefully, as the first day of week
- // can vary from engine to engine
- // P1W: 'W',
- // '1969-12-28T00:00:00Z/P1W': 'W',
- // '1969-12-29T00:00:00Z/P1W': 'W',
- // 'P1W/1970-01-03T00:00:00Z': 'W',
- // 'P1W/1970-01-04T00:00:00Z': 'W',
-};
-
export default function buildQuery(formData: QueryFormData) {
return buildQueryContext(formData, baseQueryObject => {
- // todo: move into full advanced analysis section here
- const rollingProc = rollingWindowOperator(formData, baseQueryObject);
- const { time_grain_sqla } = formData;
- let resampleProc: PostProcessingResample;
- if (rollingProc && time_grain_sqla) {
- const rule = TIME_GRAIN_MAP[time_grain_sqla];
- if (rule) {
- resampleProc = {
- operation: 'resample',
- options: {
- method: 'asfreq',
- rule,
- fill_value: null,
- },
- };
- }
- }
+ const { x_axis } = formData;
+ const is_timeseries = x_axis === DTTM_ALIAS || !x_axis;
+
return [
{
...baseQueryObject,
is_timeseries: true,
post_processing: [
- sortOperator(formData, baseQueryObject),
- resampleProc,
- rollingProc,
+ pivotOperator(formData, {
+ ...baseQueryObject,
+ index: x_axis,
+ is_timeseries,
+ }),
+ rollingWindowOperator(formData, baseQueryObject),
+ resampleOperator(formData, baseQueryObject),
flattenOperator(formData, baseQueryObject),
],
},
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/controlPanel.tsx
b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/controlPanel.tsx
index c1378543f6..6b99af91ce 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/controlPanel.tsx
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberWithTrendline/controlPanel.tsx
@@ -217,6 +217,52 @@ const config: ControlPanelConfig = {
},
},
],
+ // eslint-disable-next-line react/jsx-key
+ [<h1 className="section-header">{t('Resample')}</h1>],
+ [
+ {
+ name: 'resample_rule',
+ config: {
+ type: 'SelectControl',
+ freeForm: true,
+ label: t('Rule'),
+ default: null,
+ choices: [
+ ['1T', '1 minutely frequency'],
+ ['1H', '1 hourly frequency'],
+ ['1D', '1 calendar day frequency'],
+ ['7D', '7 calendar day frequency'],
+ ['1MS', '1 month start frequency'],
+ ['1M', '1 month end frequency'],
+ ['1AS', '1 year start frequency'],
+ ['1A', '1 year end frequency'],
+ ],
+ description: t('Pandas resample rule'),
+ },
+ },
+ ],
+ [
+ {
+ name: 'resample_method',
+ config: {
+ type: 'SelectControl',
+ freeForm: true,
+ label: t('Fill method'),
+ default: null,
+ choices: [
+ ['asfreq', 'Null imputation'],
+ ['zerofill', 'Zero imputation'],
+ ['linear', 'Linear interpolation'],
+ ['ffill', 'Forward values'],
+ ['bfill', 'Backward values'],
+ ['median', 'Median values'],
+ ['mean', 'Mean values'],
+ ['sum', 'Sum values'],
+ ],
+ description: t('Pandas resample method'),
+ },
+ },
+ ],
],
},
],