This is an automated email from the ASF dual-hosted git repository. diegopucci pushed a commit to branch chore/update-cypress-test-local in repository https://gitbox.apache.org/repos/asf/superset.git
commit 3e6e109d778c359c1e18904a85812d3da0e21170 Merge: 932e304ffb 9c7bcfcead Author: geido <[email protected]> AuthorDate: Wed Jul 20 15:17:46 2022 +0300 Merge branch 'master' of https://github.com/apache/superset .github/workflows/caches.js | 2 + .github/workflows/license-check.yml | 51 + .../workflows/{misc.yml => prefer-typescript.yml} | 45 +- .github/workflows/superset-frontend.yml | 5 + .pylintrc | 2 +- CHANGELOG.md | 494 +++++++ Dockerfile | 4 +- RELEASING/Dockerfile.from_local_tarball | 2 +- RELEASING/Dockerfile.from_svn_tarball | 2 +- RELEASING/README.md | 9 +- RELEASING/release-notes-2-0/README.md | 152 ++ RELEASING/release-notes-2-0/changelog.md | 491 +++++++ RELEASING/test_run_tarball.sh | 2 +- RESOURCES/INTHEWILD.md | 2 + UPDATING.md | 15 +- docker/docker-frontend.sh | 5 +- docker/run-server.sh | 2 + .../creating-your-first-dashboard.mdx | 2 +- docs/docs/databases/elasticsearch.mdx | 8 + docs/docs/databases/sql-server.mdx | 7 + docs/docs/installation/alerts-reports.mdx | 147 +- docs/docs/installation/cache.mdx | 2 +- docs/docs/installation/configuring-superset.mdx | 4 + docs/docs/installation/event-logging.mdx | 4 +- docs/docs/installation/running-on-kubernetes.mdx | 2 +- docs/docs/installation/sql-templating.mdx | 4 +- docs/docs/intro.mdx | 4 +- docs/yarn.lock | 6 +- helm/superset/Chart.yaml | 2 +- helm/superset/templates/deployment-beat.yaml | 6 + helm/superset/templates/deployment-worker.yaml | 6 + helm/superset/templates/deployment.yaml | 6 + helm/superset/templates/init-job.yaml | 6 + helm/superset/values.schema.json | 24 + helm/superset/values.yaml | 8 + requirements/base.txt | 6 +- requirements/docker.txt | 2 - setup.py | 4 +- .../integration/explore/advanced_analytics.test.ts | 2 +- .../cypress/integration/explore/chart.test.js | 2 +- .../cypress/integration/explore/control.test.ts | 26 +- .../integration/explore/explore.applitools.test.ts | 2 +- .../cypress/integration/explore/filter_box.test.js | 2 +- .../cypress/integration/explore/link.test.ts | 4 +- .../explore/visualizations/area.test.js | 34 +- .../explore/visualizations/big_number.test.js | 6 +- .../explore/visualizations/box_plot.test.js | 2 +- .../explore/visualizations/bubble.test.js | 8 +- .../explore/visualizations/compare.test.js | 2 +- .../explore/visualizations/dist_bar.test.js | 8 +- .../explore/visualizations/download_chart.test.js | 2 +- .../explore/visualizations/dual_line.test.js | 4 +- .../explore/visualizations/gauge.test.js | 2 +- .../explore/visualizations/graph.test.ts | 2 +- .../explore/visualizations/histogram.test.ts | 2 +- .../explore/visualizations/line.test.ts | 38 +- .../integration/explore/visualizations/pie.test.js | 2 +- .../explore/visualizations/pivot_table.test.js | 4 +- .../explore/visualizations/sankey.test.js | 6 +- .../explore/visualizations/shared.helper.js | 4 +- .../explore/visualizations/sunburst.test.js | 2 +- .../explore/visualizations/table.test.ts | 8 +- .../explore/visualizations/time_table.js | 10 +- .../explore/visualizations/treemap.test.js | 2 +- .../explore/visualizations/world_map.test.js | 2 +- .../cypress-base/cypress/support/index.ts | 48 +- superset-frontend/cypress-base/package-lock.json | 12 +- superset-frontend/package-lock.json | 1469 ++++++++++++++------ superset-frontend/package.json | 3 +- .../superset-ui-chart-controls/src/constants.ts | 1 - .../src/operators/pivotOperator.ts | 4 +- .../src/operators/timeComparePivotOperator.ts | 4 +- .../src/sections/annotationsAndLayers.tsx | 2 +- .../src/sections/echartsTimeSeriesQuery.tsx | 1 + .../src/sections/sections.tsx | 1 - .../components/ColumnConfigControl/constants.tsx | 11 + .../src/shared-controls/constants.tsx | 22 +- .../src/shared-controls/index.tsx | 28 +- .../superset-ui-chart-controls/src/types.ts | 31 +- .../src/utils/getColorFormatters.ts | 25 +- .../test/operators/pivotOperator.test.ts | 9 +- .../test/operators/timeCompareOperator.test.ts | 2 - .../operators/timeComparePivotOperator.test.ts | 7 +- .../test/utils/getColorFormatters.test.ts | 3 + .../src/connection/SupersetClient.ts | 1 + .../src/connection/SupersetClientClass.ts | 4 + .../superset-ui-core/src/connection/types.ts | 1 + .../superset-ui-core/src/query/DatasourceKey.ts | 4 +- .../superset-ui-core/src/query/buildQueryObject.ts | 8 +- .../superset-ui-core/src/query/constants.ts | 2 +- .../superset-ui-core/src/query/extractExtras.ts | 32 +- .../superset-ui-core/src/query/extractTimegrain.ts | 2 +- .../superset-ui-core/src/query/getMetricLabel.ts | 2 +- .../superset-ui-core/src/query/processFilters.ts | 4 - .../src/query/types/AnnotationLayer.ts | 4 +- .../superset-ui-core/src/query/types/Column.ts | 2 +- .../superset-ui-core/src/query/types/Dashboard.ts | 1 - .../superset-ui-core/src/query/types/Datasource.ts | 3 +- .../src/query/types/PostProcessing.ts | 4 +- .../superset-ui-core/src/query/types/Query.ts | 3 +- .../src/query/types/QueryFormData.ts | 22 +- .../src/query/types/QueryResponse.ts | 2 +- .../superset-ui-core/src/query/types/Time.ts | 1 - .../src/ui-overrides/ExtensionsRegistry.ts | 57 + .../src/ui-overrides/UiOverrideRegistry.ts | 46 - .../superset-ui-core/src/ui-overrides/index.tsx | 2 +- .../superset-ui-core/src/utils/featureFlags.ts | 1 + .../test/chart/fixtures/formData.ts | 3 +- .../test/connection/SupersetClient.test.ts | 10 +- .../test/connection/SupersetClientClass.test.ts | 3 +- .../test/query/DatasourceKey.test.ts | 15 +- .../test/query/buildQueryContext.test.ts | 11 - .../test/query/extractExtras.test.ts | 3 +- .../test/query/processFilters.test.ts | 38 +- .../test/query/types/Datasource.test.ts} | 23 +- .../test/query/types/PostProcessing.test.ts | 2 - ...Registry.test.ts => ExtensionsRegistry.test.ts} | 6 +- .../src/layers/Grid/Grid.jsx | 14 +- .../src/layers/Grid/controlPanel.ts | 16 +- .../src/layers/Hex/Hex.jsx | 14 +- .../src/layers/Hex/controlPanel.ts | 12 +- .../src/layers/Polygon/controlPanel.ts | 10 +- .../src/layers/Screengrid/controlPanel.ts | 10 +- .../src/utils/explore.js | 2 +- .../src/vendor/superset/exploreUtils.js | 2 +- .../plugins/plugin-chart-echarts/package.json | 2 +- .../src/MixedTimeseries/transformProps.ts | 16 +- .../src/Timeseries/transformProps.ts | 16 +- .../src/Timeseries/transformers.ts | 12 +- .../src/Treemap/transformProps.ts | 1 + .../plugins/plugin-chart-echarts/src/types.ts | 2 + .../plugin-chart-echarts/src/utils/annotation.ts | 33 +- .../plugin-chart-echarts/src/utils/series.ts | 6 +- .../test/MixedTimeseries/buildQuery.test.ts | 13 +- .../test/Timeseries/transformProps.test.ts | 88 +- .../test/utils/annotation.test.ts | 23 +- .../plugins/plugin-chart-handlebars/package.json | 5 +- .../src/components/Handlebars/HandlebarsViewer.tsx | 3 + .../plugin-chart-handlebars/types/external.d.ts | 2 + .../plugins/plugin-chart-table/src/Styles.tsx | 11 + .../plugins/plugin-chart-table/src/TableChart.tsx | 29 +- .../plugin-chart-table/src/controlPanel.tsx | 1 + .../spec/fixtures/mockChartQueries.js | 17 - .../spec/fixtures/mockSliceEntities.js | 22 +- superset-frontend/spec/helpers/reducerIndex.ts | 2 +- superset-frontend/src/SqlLab/actions/sqlLab.js | 17 +- .../src/SqlLab/actions/sqlLab.test.js | 25 +- .../src/SqlLab/components/ResultSet/index.tsx | 30 +- .../SaveDatasetModal/SaveDatasetModal.test.tsx | 35 +- .../SqlLab/components/SaveDatasetModal/index.tsx | 254 ++-- .../src/SqlLab/components/SaveQuery/index.tsx | 6 +- .../components/ScheduleQueryButton/index.tsx | 14 +- .../SqlLab/components/SqlEditorLeftBar/index.tsx | 28 +- .../src/SqlLab/components/TableElement/index.tsx | 10 +- superset-frontend/src/SqlLab/reducers/sqlLab.js | 8 +- .../src/SqlLab/reducers/sqlLab.test.js | 4 +- superset-frontend/src/SqlLab/types.ts | 21 +- .../src/addSlice/AddSliceContainer.test.tsx | 33 +- .../src/addSlice/AddSliceContainer.tsx | 66 +- superset-frontend/src/addSlice/App.tsx | 49 - superset-frontend/src/components/Chart/Chart.jsx | 2 +- .../src/components/Chart/chartAction.js | 8 +- .../src/components/Chart/chartReducer.ts | 7 +- .../src/components/DatabaseSelector/index.tsx | 6 +- .../src/components/Datasource/DatasourceEditor.jsx | 21 +- .../src/components/EditableTitle/index.tsx | 4 +- .../ErrorMessage/ErrorMessageWithStackTrace.tsx | 2 +- .../src/components/ImportModal/ErrorAlert.tsx | 2 +- superset-frontend/src/components/Modal/Modal.tsx | 10 +- .../ModalTrigger/ModalTrigger.stories.tsx | 8 +- .../src/components/ModalTrigger/index.jsx | 129 -- .../src/components/ModalTrigger/index.tsx | 130 ++ .../{Select.test.tsx => AsyncSelect.test.tsx} | 305 ++-- .../Select/{Select.tsx => AsyncSelect.tsx} | 18 +- .../src/components/Select/Select.stories.tsx | 24 +- .../src/components/Select/Select.test.tsx | 351 +---- superset-frontend/src/components/Select/Select.tsx | 6 +- .../src/components/TableSelector/index.tsx | 9 +- superset-frontend/src/components/index.ts | 1 + superset-frontend/src/constants.ts | 12 + .../src/dashboard/actions/dashboardState.js | 5 +- superset-frontend/src/dashboard/actions/hydrate.js | 5 +- .../src/dashboard/actions/sliceEntities.js | 211 +-- .../src/dashboard/actions/sliceEntities.test.js | 102 ++ .../components/DashboardEmbedControls.tsx | 8 +- .../dashboard/components/PropertiesModal/index.tsx | 8 +- .../dashboard/components/RefreshIntervalModal.tsx | 12 +- .../src/dashboard/components/SaveModal.tsx | 16 +- .../src/dashboard/components/SliceAdder.jsx | 26 +- .../src/dashboard/components/SliceAdder.test.jsx | 1 + .../components/SliceHeader/SliceHeader.test.tsx | 36 +- .../src/dashboard/components/SliceHeader/index.tsx | 18 +- .../SliceHeaderControls.test.tsx | 2 +- .../components/SliceHeaderControls/index.tsx | 16 +- .../components/filterscope/FilterScopeModal.tsx | 12 +- .../dashboard/components/gridComponents/Chart.jsx | 34 +- .../components/gridComponents/Chart.test.jsx | 11 +- .../components/gridComponents/ChartHolder.test.tsx | 24 +- .../components/gridComponents/Column.test.jsx | 9 +- .../components/gridComponents/Row.test.jsx | 9 +- .../components/nativeFilters/FilterBar/state.ts | 2 +- .../FiltersConfigForm/DatasetSelect.tsx | 4 +- .../FiltersConfigForm/FilterScope/utils.ts | 2 +- .../FiltersConfigForm/FiltersConfigForm.tsx | 2 +- .../FiltersConfigModal/FiltersConfigForm/utils.ts | 6 +- superset-frontend/src/dashboard/constants.ts | 4 +- .../src/dashboard/containers/Dashboard.ts | 2 +- .../src/dashboard/containers/DashboardPage.tsx | 6 +- .../src/dashboard/containers/SliceAdder.jsx | 8 +- .../src/dashboard/reducers/datasources.ts | 43 - superset-frontend/src/dashboard/types.ts | 11 +- .../util/charts/getFormDataWithExtraFilters.ts | 2 +- .../fetchDatasourceMetadata.ts} | 40 +- .../util/filterboxMigrationHelper.test.ts | 4 +- .../src/dashboard/util/filterboxMigrationHelper.ts | 97 -- .../dashboard/util/getFilterConfigsFromFormdata.js | 8 - .../util/getFormDataWithExtraFilters.test.ts | 3 +- .../util/getSliceHeaderTooltip.tsx} | 27 +- .../dashboard/util/logging/childChartsDidLoad.js | 2 +- .../actions.ts} | 51 +- .../reducer.ts} | 25 +- superset-frontend/src/explore/App.jsx | 52 - superset-frontend/src/explore/ExplorePage.tsx | 89 ++ .../src/explore/actions/datasourcesActions.test.ts | 85 -- .../src/explore/actions/exploreActions.ts | 21 + .../src/explore/actions/hydrateExplore.test.ts | 89 ++ .../src/explore/actions/hydrateExplore.ts | 150 ++ .../src/explore/actions/saveModalActions.js | 164 ++- .../src/explore/actions/saveModalActions.test.js | 292 ++++ .../explore/components/ControlPanelsContainer.tsx | 26 +- .../explore/components/DataTableControl/index.tsx | 4 +- .../DataTablesPane/components/SamplesPane.tsx | 4 +- .../DataTablesPane/test/SamplesPane.test.tsx | 41 +- .../DatasourcePanel/DatasourcePanel.test.tsx | 15 +- .../components/DatasourcePanel/fixtures.tsx | 3 +- .../explore/components/DatasourcePanel/index.tsx | 187 ++- .../src/explore/components/ExploreAlert.tsx | 9 +- .../ExploreChartHeader/ExploreChartHeader.test.tsx | 2 +- .../src/explore/components/ExploreChartPanel.jsx | 49 + .../explore/components/ExploreChartPanel.test.jsx | 9 + .../ExploreViewContainer.test.tsx | 16 +- .../components/ExploreViewContainer/index.jsx | 44 +- .../explore/components/PropertiesModal/index.tsx | 4 +- .../src/explore/components/SaveModal.test.jsx | 452 ++---- .../src/explore/components/SaveModal.tsx | 131 +- .../DatasourceControl/DatasourceControl.test.jsx | 59 +- .../DatasourceControl/DatasourceControl.test.tsx | 27 +- .../controls/DatasourceControl/index.jsx | 153 +- .../DndColumnSelectControl/DndFilterSelect.tsx | 20 +- .../FilterControl/AdhocFilterControl/index.jsx | 20 +- .../FilterControl/AdhocFilterEditPopover/index.jsx | 16 +- ...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 8 - .../index.tsx | 36 +- .../AdhocMetricEditPopover.test.tsx | 12 - .../MetricControl/AdhocMetricEditPopover/index.jsx | 29 +- .../src/explore/components/controls/ViewQuery.tsx | 74 + .../explore/components/controls/ViewQueryModal.tsx | 48 +- .../components/controls/ViewQueryModalFooter.tsx | 83 ++ .../controls/VizTypeControl/FastVizSwitcher.tsx | 2 +- .../useExploreAdditionalActionsMenu/index.jsx | 4 +- superset-frontend/src/explore/constants.ts | 3 - .../src/explore/controlPanels/sections.tsx | 7 - .../explore/controlUtils/getSectionsToRender.ts | 2 +- .../controlUtils/standardizedFormData.test.ts | 7 +- .../explore/controlUtils/standardizedFormData.ts | 20 +- superset-frontend/src/explore/controls.jsx | 17 +- .../src/explore/exploreUtils/exploreUtils.test.jsx | 4 +- .../src/explore/exploreUtils/getExploreUrl.test.ts | 2 +- .../exploreUtils/getParsedExploreURLParams.test.ts | 62 + .../exploreUtils/getParsedExploreURLParams.ts | 124 ++ .../explore/exploreUtils/getURIDirectory.test.ts | 4 +- .../src/explore/exploreUtils/index.js | 5 +- superset-frontend/src/explore/fixtures.tsx | 59 +- superset-frontend/src/explore/index.jsx | 42 - .../src/explore/reducers/exploreReducer.js | 20 +- .../src/explore/reducers/getInitialState.ts | 146 -- superset-frontend/src/explore/reducers/index.js | 57 - .../src/explore/reducers/saveModalReducer.js | 4 + superset-frontend/src/explore/store.js | 3 +- superset-frontend/src/explore/types.ts | 58 +- .../components/Select/SelectFilterPlugin.tsx | 5 +- .../src/hooks/apiResources/dashboards.ts | 5 +- superset-frontend/src/middleware/logger.test.js | 35 + .../src/middleware/loggerMiddleware.js | 4 + superset-frontend/src/preamble.ts | 8 + superset-frontend/src/reduxUtils.ts | 3 +- .../index.tsx => setup/setupExtensions.ts} | 6 +- .../utils/datasourceUtils.js} | 10 +- superset-frontend/src/utils/getDatasourceUid.ts | 2 +- superset-frontend/src/utils/localStorageHelpers.ts | 2 + superset-frontend/src/utils/urlUtils.ts | 6 +- superset-frontend/src/views/App.tsx | 4 +- .../src/views/CRUD/alert/AlertReportModal.test.jsx | 14 +- .../src/views/CRUD/alert/AlertReportModal.tsx | 12 +- .../src/views/CRUD/chart/ChartCard.tsx | 5 +- .../src/views/CRUD/chart/ChartList.test.jsx | 2 +- .../src/views/CRUD/chart/ChartList.tsx | 9 +- .../src/views/CRUD/data/database/DatabaseList.tsx | 7 +- .../data/database/DatabaseModal/ModalHeader.tsx | 4 +- .../CRUD/data/database/DatabaseModal/index.tsx | 82 +- .../CRUD/data/database/DatabaseModal/styles.ts | 4 +- .../views/CRUD/data/dataset/AddDatasetModal.tsx | 19 +- .../views/CRUD/data/dataset/DatasetList.test.jsx | 2 +- .../src/views/CRUD/data/dataset/DatasetList.tsx | 7 + .../views/CRUD/data/query/QueryPreviewModal.tsx | 54 +- .../data/savedquery/SavedQueryPreviewModal.tsx | 54 +- superset-frontend/src/views/CRUD/hooks.ts | 4 +- .../src/views/CRUD/welcome/ActivityTable.tsx | 27 +- .../src/views/CRUD/welcome/Welcome.test.tsx | 23 + .../src/views/CRUD/welcome/Welcome.tsx | 7 +- .../src/views/components/Menu.test.tsx | 18 + superset-frontend/src/views/components/Menu.tsx | 2 +- .../components/{MenuRight.tsx => RightMenu.tsx} | 41 +- superset-frontend/src/views/menu.tsx | 5 +- superset-frontend/src/views/routes.tsx | 21 + superset-frontend/src/views/store.ts | 59 +- .../src/visualizations/FilterBox/FilterBox.jsx | 13 +- superset-frontend/webpack.config.js | 2 - superset/annotation_layers/annotations/api.py | 10 +- .../annotations/commands/bulk_delete.py | 5 +- .../annotations/commands/create.py | 4 +- .../annotations/commands/delete.py | 4 +- .../annotations/commands/update.py | 4 +- superset/annotation_layers/api.py | 10 +- superset/annotation_layers/commands/bulk_delete.py | 5 +- superset/annotation_layers/commands/create.py | 4 +- superset/annotation_layers/commands/delete.py | 4 +- superset/annotation_layers/commands/update.py | 4 +- superset/charts/api.py | 10 +- superset/charts/commands/bulk_delete.py | 8 +- superset/charts/commands/create.py | 9 +- superset/charts/commands/delete.py | 8 +- superset/charts/commands/update.py | 13 +- superset/charts/filters.py | 17 +- superset/charts/post_processing.py | 9 +- superset/charts/schemas.py | 10 +- superset/commands/base.py | 14 +- superset/commands/importers/v1/assets.py | 1 - superset/commands/importers/v1/examples.py | 1 - superset/commands/utils.py | 17 +- superset/common/query_actions.py | 8 +- superset/common/query_context_factory.py | 5 +- superset/common/query_context_processor.py | 24 +- superset/common/query_object.py | 2 - superset/common/utils/dataframe_utils.py | 15 +- superset/config.py | 7 + superset/connectors/base/models.py | 2 +- superset/connectors/sqla/models.py | 40 +- superset/connectors/sqla/utils.py | 2 +- superset/connectors/sqla/views.py | 20 +- superset/constants.py | 1 - superset/css_templates/api.py | 4 +- superset/css_templates/commands/bulk_delete.py | 5 +- superset/dashboards/api.py | 11 +- superset/dashboards/commands/bulk_delete.py | 8 +- superset/dashboards/commands/create.py | 6 +- superset/dashboards/commands/delete.py | 8 +- .../dashboards/commands/importers/v1/__init__.py | 1 - superset/dashboards/commands/update.py | 10 +- superset/dashboards/filter_sets/api.py | 8 +- superset/dashboards/filter_sets/commands/base.py | 17 +- superset/dashboards/filter_sets/commands/create.py | 11 +- superset/dashboards/filter_sets/commands/delete.py | 5 +- superset/dashboards/filter_sets/commands/update.py | 7 +- superset/dashboards/filter_sets/filters.py | 12 +- .../dashboards/filter_state/commands/create.py | 6 +- .../dashboards/filter_state/commands/delete.py | 5 +- .../dashboards/filter_state/commands/update.py | 6 +- superset/dashboards/filters.py | 4 +- superset/dashboards/permalink/api.py | 5 +- superset/dashboards/permalink/commands/create.py | 21 +- superset/dashboards/permalink/commands/get.py | 4 +- superset/databases/api.py | 12 +- superset/databases/commands/create.py | 6 +- superset/databases/commands/delete.py | 4 +- superset/databases/commands/test_connection.py | 79 +- superset/databases/commands/update.py | 4 +- superset/databases/commands/validate.py | 36 +- superset/datasets/api.py | 20 +- superset/datasets/columns/api.py | 4 +- superset/datasets/columns/commands/delete.py | 8 +- superset/datasets/commands/bulk_delete.py | 11 +- superset/datasets/commands/create.py | 6 +- superset/datasets/commands/delete.py | 10 +- superset/datasets/commands/refresh.py | 8 +- superset/datasets/commands/samples.py | 9 +- superset/datasets/commands/update.py | 9 +- superset/datasets/dao.py | 9 - superset/datasets/metrics/api.py | 4 +- superset/datasets/metrics/commands/delete.py | 8 +- superset/datasource/dao.py | 8 + superset/db_engine_specs/__init__.py | 2 +- superset/db_engine_specs/base.py | 34 +- superset/db_engine_specs/drill.py | 19 +- superset/db_engine_specs/gsheets.py | 8 +- superset/db_engine_specs/hive.py | 14 +- superset/db_engine_specs/mysql.py | 6 +- superset/db_engine_specs/presto.py | 13 +- superset/db_engine_specs/snowflake.py | 6 +- superset/db_engine_specs/trino.py | 8 +- superset/examples/birth_names.py | 3 + superset/explore/api.py | 84 +- superset/explore/commands/get.py | 17 +- superset/{datasets => explore}/commands/samples.py | 52 +- superset/explore/exceptions.py | 16 +- superset/explore/form_data/api.py | 8 +- superset/explore/form_data/commands/create.py | 9 +- superset/explore/form_data/commands/delete.py | 8 +- superset/explore/form_data/commands/get.py | 2 - superset/explore/form_data/commands/parameters.py | 3 - superset/explore/form_data/commands/update.py | 9 +- superset/explore/form_data/commands/utils.py | 5 +- superset/explore/permalink/api.py | 6 +- superset/explore/permalink/commands/create.py | 9 +- superset/explore/permalink/commands/get.py | 6 +- superset/explore/utils.py | 13 +- superset/initialization/__init__.py | 3 + superset/key_value/commands/create.py | 11 +- superset/key_value/commands/update.py | 11 +- superset/key_value/commands/upsert.py | 16 +- superset/key_value/utils.py | 12 +- .../shared/migrate_viz/__init__.py} | 10 +- superset/migrations/shared/migrate_viz/base.py | 145 ++ .../migrations/shared/migrate_viz/processors.py | 55 + superset/migrations/shared/utils.py | 11 +- ...bea_add_advanced_data_types_to_column_models.py | 4 +- ...4fbb_add_type_to_native_filter_configuration.py | 2 +- ...cf3d64daf4_add_user_id_dttm_idx_to_log_model.py | 26 +- ..._13-00_c747c78868b6_migrating_legacy_treemap.py | 22 +- ...-07_14-00_06e1e70058c7_migrating_legacy_area.py | 22 +- ...-16_a39867932713_query_context_to_mediumtext.py | 30 +- superset/models/core.py | 14 +- superset/models/dashboard.py | 13 +- superset/models/helpers.py | 1204 +++++++++++++++- superset/models/slice.py | 7 +- superset/models/sql_lab.py | 111 +- superset/models/sql_types/presto_sql_types.py | 2 +- superset/queries/saved_queries/api.py | 2 +- .../queries/saved_queries/commands/bulk_delete.py | 5 +- superset/reports/api.py | 10 +- superset/reports/commands/alert.py | 9 +- superset/reports/commands/bulk_delete.py | 9 +- superset/reports/commands/create.py | 9 +- superset/reports/commands/delete.py | 8 +- superset/reports/commands/execute.py | 2 +- superset/reports/commands/update.py | 10 +- superset/reports/dao.py | 5 +- superset/security/manager.py | 154 +- superset/sql_lab.py | 2 +- superset/sql_parse.py | 6 +- superset/tasks/async_queries.py | 170 +-- superset/templates/email/role_extended.txt | 2 +- superset/templates/email/role_granted.txt | 2 +- superset/templates/superset/add_slice.html | 35 - superset/temporary_cache/api.py | 11 +- superset/temporary_cache/commands/parameters.py | 3 - superset/translations/nl/LC_MESSAGES/messages.json | 2 + superset/utils/core.py | 90 +- superset/utils/csv.py | 18 +- .../utils/dashboard_filter_scopes_converter.py | 4 - superset/utils/encrypt.py | 6 +- superset/utils/mock_data.py | 2 - superset/utils/pandas_postprocessing/__init__.py | 2 - superset/utils/pandas_postprocessing/pivot.py | 13 - superset/utils/pandas_postprocessing/utils.py | 28 +- superset/views/access_requests.py | 7 +- superset/views/annotations.py | 7 +- superset/views/base.py | 53 - superset/views/chart/views.py | 24 +- superset/views/core.py | 50 +- superset/views/css_templates.py | 7 +- superset/views/dashboard/mixin.py | 6 +- superset/views/dashboard/views.py | 6 +- superset/views/datasource/views.py | 11 +- superset/views/explore.py | 49 + superset/views/log/views.py | 5 +- superset/views/redirects.py | 39 +- superset/views/sql_lab.py | 7 +- superset/views/utils.py | 5 - superset/viz.py | 2 - tests/integration_tests/access_tests.py | 24 +- .../advanced_data_type/api_tests.py | 18 +- tests/integration_tests/base_tests.py | 24 +- tests/integration_tests/cachekeys/api_tests.py | 28 +- tests/integration_tests/celery_tests.py | 87 +- tests/integration_tests/charts/api_tests.py | 20 +- tests/integration_tests/charts/commands_tests.py | 38 +- tests/integration_tests/charts/data/api_tests.py | 9 +- tests/integration_tests/config_tests.py | 173 --- tests/integration_tests/conftest.py | 34 +- tests/integration_tests/core_tests.py | 33 +- tests/integration_tests/csv_upload_tests.py | 52 +- tests/integration_tests/dashboard_tests.py | 23 +- .../dashboards/filter_sets/create_api_tests.py | 9 +- .../dashboards/filter_sets/delete_api_tests.py | 2 +- .../dashboards/filter_sets/get_api_tests.py | 2 +- .../dashboards/filter_sets/update_api_tests.py | 2 +- .../dashboards/filter_state/api_tests.py | 227 +-- .../dashboards/permalink/api_tests.py | 44 +- .../integration_tests/databases/commands_tests.py | 63 +- tests/integration_tests/datasets/api_tests.py | 222 +++ .../db_engine_specs/base_engine_spec_tests.py | 8 +- .../db_engine_specs/bigquery_tests.py | 4 +- .../db_engine_specs/presto_tests.py | 27 +- tests/integration_tests/explore/api_tests.py | 53 +- .../explore/form_data/api_tests.py | 174 +-- .../explore/form_data/commands_tests.py | 17 +- .../explore/permalink/api_tests.py | 45 +- .../explore/permalink/commands_tests.py | 8 +- .../fixtures/birth_names_dashboard.py | 30 +- tests/integration_tests/fixtures/datasource.py | 2 +- tests/integration_tests/import_export_tests.py | 46 +- .../key_value/commands/create_test.py | 19 +- .../key_value/commands/update_test.py | 37 +- .../key_value/commands/upsert_test.py | 37 +- .../06e1e70058c7_migrate_legacy_area__tests.py | 99 ++ ...c747c78868b6_migrating_legacy_treemap__tests.py | 91 ++ tests/integration_tests/model_tests.py | 5 +- tests/integration_tests/query_context_tests.py | 3 +- tests/integration_tests/reports/alert_tests.py | 119 ++ tests/integration_tests/reports/commands_tests.py | 68 +- tests/integration_tests/security_tests.py | 67 +- tests/integration_tests/sqla_models_tests.py | 3 +- tests/integration_tests/sqllab_tests.py | 1 + tests/integration_tests/superset_test_config.py | 2 + .../integration_tests/tasks/async_queries_tests.py | 84 +- tests/integration_tests/test_app.py | 17 +- tests/integration_tests/utils_tests.py | 3 - tests/integration_tests/viz_tests.py | 12 - tests/unit_tests/charts/test_post_processing.py | 599 +++++++- tests/unit_tests/common/test_dataframe_utils.py | 50 + tests/unit_tests/config_test.py | 330 +++++ tests/unit_tests/conftest.py | 11 +- .../datasets/commands/importers/v1/import_test.py | 131 +- tests/unit_tests/datasets/test_models.py | 1 - tests/unit_tests/db_engine_specs/test_drill.py | 16 +- tests/unit_tests/explore/utils_test.py | 164 ++- .../pandas_postprocessing/test_compare.py | 2 - tests/unit_tests/pandas_postprocessing/test_cum.py | 4 - .../unit_tests/pandas_postprocessing/test_pivot.py | 129 +- .../pandas_postprocessing/test_resample.py | 2 - .../pandas_postprocessing/test_rolling.py | 6 - tests/unit_tests/sql_parse_tests.py | 1 - tests/unit_tests/utils/urls_tests.py | 4 +- 544 files changed, 11887 insertions(+), 5935 deletions(-)
