feat(SQL Lab): Make SQL Lab explore use the default viz from the config file (#20056)

* Modified SQL Lab so it uses the default viz to explore a new dataset with

* Added a comment to the config file

* Remove trailing whitespace

* [CLDN-1312] Removed the 'viz_type' variable so that when it is undefinded in the back-end, it gets set to the default viz

* [CLDN-1312] Only sets the 'all_columns' variable if the default viz type is a 'table'

* Will only pop 'selectedColumns' out of 'form_data' if it is present

* [CLDN-1312] Updated files so that the default viz is now being used again in SQL Lab Explore
This commit is contained in:
cccs-Dustin 2022-06-22 13:33:44 -04:00 committed by GitHub
parent b66a617ed9
commit daded10992
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 7 deletions

View File

@ -159,9 +159,7 @@ export const SaveDatasetModal: FunctionComponent<SaveDatasetModalProps> = ({
exploreChart({
...EXPLORE_CHART_DEFAULT,
datasource: `${datasetToOverwrite.datasetId}__table`,
all_columns: query.results.selected_columns.map(
(d: { name: string; type: string; is_dttm: boolean }) => d.name,
),
selected_columns: query.results.selected_columns,
});
};
@ -243,8 +241,7 @@ export const SaveDatasetModal: FunctionComponent<SaveDatasetModalProps> = ({
metrics: [],
groupby: [],
time_range: 'No filter',
viz_type: 'table',
all_columns: selectedColumns.map(c => c.name),
selectedColumns,
row_limit: 1000,
});
})

View File

@ -91,7 +91,6 @@ export const EXPLORE_CHART_DEFAULT = {
metrics: [],
groupby: [],
time_range: 'No filter',
viz_type: 'table',
};
export interface DatasetOwner {

View File

@ -142,7 +142,7 @@ VERSION_SHA = _try_json_readsha(VERSION_INFO_FILE, VERSION_SHA_LENGTH)
# can be replaced at build time to expose build information.
BUILD_NUMBER = None
# default viz used in chart explorer
# default viz used in chart explorer & SQL Lab explore
DEFAULT_VIZ_TYPE = "table"
# default row limit when requesting chart data

View File

@ -837,6 +837,19 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods
if not viz_type and datasource and datasource.default_endpoint:
return redirect(datasource.default_endpoint)
selectedColumns = []
if "selectedColumns" in form_data:
selectedColumns = form_data.pop("selectedColumns")
if "viz_type" not in form_data:
form_data["viz_type"] = app.config["DEFAULT_VIZ_TYPE"]
if app.config["DEFAULT_VIZ_TYPE"] == "table":
all_columns = []
for x in selectedColumns:
all_columns.append(x["name"])
form_data["all_columns"] = all_columns
# slc perms
slice_add_perm = security_manager.can_access("can_write", "Chart")
slice_overwrite_perm = is_owner(slc, g.user) if slc else False