This is an automated email from the ASF dual-hosted git repository. diegopucci pushed a commit to branch fix/default-temporal-column in repository https://gitbox.apache.org/repos/asf/superset.git
commit 5bf605980d9258f9474b23f2b7b4d9c18f8060a6 Author: geido <[email protected]> AuthorDate: Tue Oct 18 14:30:59 2022 +0300 WIP --- .../controls/DatasourceControl/index.jsx | 34 ++++++++++++++-------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx b/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx index 9fa4a8a2ba..b30c172204 100644 --- a/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx +++ b/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx @@ -169,21 +169,31 @@ class DatasourceControl extends React.PureComponent { }; } - onDatasourceSave = datasource => { + onDatasourceSave = (datasource) => { this.props.actions.changeDatasource(datasource); - const timeCol = this.props.form_data?.granularity_sqla; const { columns } = this.props.datasource; - const firstDttmCol = columns.find(column => column.is_dttm); - if ( - datasource.type === 'table' && - !columns.find(({ column_name }) => column_name === timeCol)?.is_dttm - ) { - // set `granularity_sqla` to first datatime column name or null - this.props.actions.setControlValue( - 'granularity_sqla', - firstDttmCol ? firstDttmCol.column_name : null, - ); + const timeCol = this.props.form_data?.granularity_sqla; + const timeColConf = columns.find(({ column_name }) => column_name === timeCol); + const firstDttmCol = columns.find(column => column.is_dttm)?.column_name || null; + const currentMainDttmCol = columns.find(c => c.column_name === datasource.main_dttm_col); + const setDttmCol = currentMainDttmCol?.is_dttm ? currentMainDttmCol.column_name : firstDttmCol; + console.log("firstDttmCol", firstDttmCol); + console.log("currentMainDttmCol", currentMainDttmCol); + + + if (datasource.type === 'table') { + // resets new default time col or picks the first available one + if ( + datasource.main_dttm_col !== timeCol || !timeColConf?.is_dttm + ) { + console.log("setDttmCol", setDttmCol); + this.props.actions.setControlValue( + 'granularity_sqla', + setDttmCol, + ); + } } + if (this.props.onDatasourceSave) { this.props.onDatasourceSave(datasource); }
