fix(plugin-chart-table): Include time control (#23533)

This commit is contained in:
Kamil Gabryjelski 2023-04-03 12:31:33 +02:00 committed by GitHub
parent bd0609df58
commit 13ffb4b7c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 14 deletions

View File

@ -30,6 +30,7 @@ import {
FormDataResidual,
QueryMode,
} from './types/QueryFormData';
import { hasGenericChartAxes } from './getXAxis';
/**
* Extra SQL query related fields from chart form data.
@ -105,7 +106,7 @@ export default function extractQueryFields(
}
});
if (includeTime && !columns.includes(DTTM_ALIAS)) {
if (!hasGenericChartAxes && includeTime && !columns.includes(DTTM_ALIAS)) {
columns.unshift(DTTM_ALIAS);
}

View File

@ -327,20 +327,24 @@ const config: ControlPanelConfig = {
},
},
],
!hasGenericChartAxes
? [
{
name: 'include_time',
config: {
type: 'CheckboxControl',
label: t('Include time'),
description: t(
'Whether to include the time granularity as defined in the time section',
),
default: false,
visibility: isAggMode,
resetOnHide: false,
},
},
]
: [null],
[
{
name: 'include_time',
config: {
type: 'CheckboxControl',
label: t('Include time'),
description: t(
'Whether to include the time granularity as defined in the time section',
),
default: false,
visibility: isAggMode,
resetOnHide: false,
},
},
{
name: 'order_desc',
config: {

View File

@ -29,8 +29,11 @@ import { Dispatch } from 'redux';
import {
ensureIsArray,
getCategoricalSchemeRegistry,
getColumnLabel,
getSequentialSchemeRegistry,
hasGenericChartAxes,
NO_TIME_RANGE,
QueryFormColumn,
} from '@superset-ui/core';
import {
getFormDataFromControls,
@ -73,6 +76,23 @@ export const hydrateExplore =
initialFormData.time_range =
common?.conf?.DEFAULT_TIME_FILTER || NO_TIME_RANGE;
}
if (
hasGenericChartAxes &&
initialFormData.include_time &&
initialFormData.granularity_sqla &&
!initialFormData.groupby?.some(
(col: QueryFormColumn) =>
getColumnLabel(col) ===
getColumnLabel(initialFormData.granularity_sqla!),
)
) {
initialFormData.groupby = [
initialFormData.granularity_sqla,
...ensureIsArray(initialFormData.groupby),
];
initialFormData.granularity_sqla = undefined;
}
if (dashboardId) {
initialFormData.dashboardId = dashboardId;
}