From a7d00702639a843248e59d90db7774a547c2d31c Mon Sep 17 00:00:00 2001 From: Grace Date: Fri, 14 Feb 2020 13:49:01 -0800 Subject: [PATCH 1/2] [dashboard] clean up usage for filter_immune metadata --- .../dashboard/fixtures/mockDashboardInfo.js | 5 +---- .../src/dashboard/reducers/getInitialState.js | 15 +-------------- superset/views/core.py | 8 -------- 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js index 426a05e977ba..228c72473f4b 100644 --- a/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js +++ b/superset-frontend/spec/javascripts/dashboard/fixtures/mockDashboardInfo.js @@ -19,10 +19,7 @@ export default { id: 1234, slug: 'dashboardSlug', - metadata: { - filterImmuneSlices: [], - filterImmuneSliceFields: {}, - }, + metadata: {}, userId: 'mock_user_id', dash_edit_perm: true, dash_save_perm: true, diff --git a/superset-frontend/src/dashboard/reducers/getInitialState.js b/superset-frontend/src/dashboard/reducers/getInitialState.js index b9ec8e68b81f..9bf93447c406 100644 --- a/superset-frontend/src/dashboard/reducers/getInitialState.js +++ b/superset-frontend/src/dashboard/reducers/getInitialState.js @@ -101,9 +101,6 @@ export default function(bootstrapData) { let newSlicesContainer; let newSlicesContainerWidth = 0; - const filterImmuneSliceFields = - dashboard.metadata.filter_immune_slice_fields || {}; - const filterImmuneSlices = dashboard.metadata.filter_immune_slices || []; const filterScopes = dashboard.metadata.filter_scopes || {}; const chartQueries = {}; @@ -188,8 +185,6 @@ export default function(bootstrapData) { }); } - // backward compatible: - // merge scoped filter settings with old global immune settings const scopesByChartId = Object.keys(columns).reduce((map, column) => { const scopeSettings = { ...filterScopes[key], @@ -198,20 +193,12 @@ export default function(bootstrapData) { ...DASHBOARD_FILTER_SCOPE_GLOBAL, ...scopeSettings[column], }; - const immuneChartIds = new Set(filterImmuneSlices); - Object.keys(filterImmuneSliceFields) - .filter(strChartId => - filterImmuneSliceFields[strChartId].includes(column), - ) - .forEach(strChartId => { - immuneChartIds.add(parseInt(strChartId, 10)); - }); return { ...map, [column]: { scope, - immune: [...immuneChartIds].concat(immune), + immune, }, }; }, {}); diff --git a/superset/views/core.py b/superset/views/core.py index c127ce722556..a8cac206eece 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -1263,16 +1263,8 @@ def _set_dash_metadata(dashboard, data): if "timed_refresh_immune_slices" not in md: md["timed_refresh_immune_slices"] = [] - if "filter_scopes" in data: - md.pop("filter_immune_slices", None) - md.pop("filter_immune_slice_fields", None) md["filter_scopes"] = json.loads(data.get("filter_scopes", "{}")) - else: - if "filter_immune_slices" not in md: - md["filter_immune_slices"] = [] - if "filter_immune_slice_fields" not in md: - md["filter_immune_slice_fields"] = {} md["expanded_slices"] = data["expanded_slices"] md["refresh_frequency"] = data.get("refresh_frequency", 0) default_filters_data = json.loads(data.get("default_filters", "{}")) From f365f4ff23eca3bd626f13d4b947e9119e577c9d Mon Sep 17 00:00:00 2001 From: Grace Date: Tue, 18 Feb 2020 17:34:02 -0800 Subject: [PATCH 2/2] add fix per comment --- superset/views/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/views/core.py b/superset/views/core.py index a8cac206eece..e6b321f217b3 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -1264,7 +1264,7 @@ def _set_dash_metadata(dashboard, data): if "timed_refresh_immune_slices" not in md: md["timed_refresh_immune_slices"] = [] if "filter_scopes" in data: - md["filter_scopes"] = json.loads(data.get("filter_scopes", "{}")) + md["filter_scopes"] = json.loads(data["filter_scopes"] or "{}") md["expanded_slices"] = data["expanded_slices"] md["refresh_frequency"] = data.get("refresh_frequency", 0) default_filters_data = json.loads(data.get("default_filters", "{}"))