You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by hu...@apache.org on 2023/04/06 15:28:29 UTC

[superset] 02/03: Merge branch 'master' of https://github.com/apache/superset into chart-ds-constraint

This is an automated email from the ASF dual-hosted git repository.

hugh pushed a commit to branch chart-ds-constraint
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 237e2ecb1e7e3ef9261af0b3c63312fb61f1f256
Merge: 4d673a6cf0 bccd2670cc
Author: hughhhh <hu...@gmail.com>
AuthorDate: Thu Apr 6 11:07:15 2023 -0400

    Merge branch 'master' of https://github.com/apache/superset into chart-ds-constraint

 docker-compose-non-dev.yml                         |   2 +-
 docker-compose.yml                                 |   2 +-
 docs/docs/installation/alerts-reports.mdx          |   4 +-
 docs/docs/installation/cache.mdx                   |   3 +
 docs/docs/security.mdx                             |  29 +-
 docs/static/resources/openapi.json                 |  30 ++
 helm/superset/Chart.yaml                           |   4 +-
 helm/superset/README.md                            |   2 +-
 helm/superset/values.yaml                          |   4 -
 requirements/integration.txt                       |   2 +-
 .../cypress/integration/chart_list/list.test.ts    |   8 +-
 .../cypress/integration/dashboard/editmode.test.ts |   2 +-
 .../integration/dashboard/nativeFilters.test.ts    |  11 +-
 .../cypress/integration/dashboard/utils.ts         |   9 +-
 superset-frontend/jest.config.js                   |   3 +
 superset-frontend/package-lock.json                | 562 +++++++++++++++++++++
 .../generators/plugin-chart/templates/README.erb   |  25 +
 .../generators/plugin-chart/templates/package.erb  |   2 +-
 .../plugin-chart/templates/src/MyChart.erb         |  11 +-
 .../templates/src/plugin/controlPanel.erb          |   6 +-
 .../plugin-chart/templates/src/types.erb           |   6 +-
 .../templates/test/plugin/transformProps.test.erb  |   3 +-
 .../src/shared-controls/mixins.tsx                 |   4 +-
 .../packages/superset-ui-core/package.json         |   1 +
 .../superset-ui-core/src/chart/types/Base.ts       |   6 +
 .../src/components/SafeMarkdown.tsx                |   7 +-
 .../src/query/extractQueryFields.ts                |   3 +-
 .../superset-ui-core/src/query/types/Filter.ts     |  12 +-
 .../legacy-plugin-chart-heatmap/src/Heatmap.js     |  15 +-
 .../legacy-plugin-chart-world-map/src/WorldMap.js  |   9 +
 .../legacy-plugin-chart-world-map/src/index.js     |   6 +-
 .../plugins/legacy-preset-chart-nvd3/src/utils.js  |   2 +-
 .../plugin-chart-echarts/src/BoxPlot/index.ts      |   8 +-
 .../plugin-chart-echarts/src/Funnel/index.ts       |   6 +-
 .../src/Funnel/transformProps.ts                   |   2 +-
 .../plugin-chart-echarts/src/Gauge/index.ts        |   6 +-
 .../src/Graph/EchartsGraph.tsx                     |  11 +-
 .../plugin-chart-echarts/src/Graph/index.ts        |   6 +-
 .../src/Graph/transformProps.ts                    |   3 +-
 .../src/MixedTimeseries/EchartsMixedTimeseries.tsx |  68 +--
 .../src/MixedTimeseries/index.ts                   |   6 +-
 .../src/MixedTimeseries/transformProps.ts          |   8 +-
 .../plugins/plugin-chart-echarts/src/Pie/index.ts  |   6 +-
 .../plugin-chart-echarts/src/Pie/transformProps.ts |   2 +-
 .../plugin-chart-echarts/src/Radar/index.ts        |   6 +-
 .../src/Radar/transformProps.ts                    |   2 +-
 .../src/Sunburst/EchartsSunburst.tsx               |  10 +-
 .../plugin-chart-echarts/src/Sunburst/index.ts     |   8 +-
 .../src/Timeseries/Area/index.ts                   |   6 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |  60 ++-
 .../src/Timeseries/Regular/Bar/index.ts            |   6 +-
 .../src/Timeseries/Regular/Line/index.ts           |   6 +-
 .../src/Timeseries/Regular/Scatter/index.ts        |   6 +-
 .../src/Timeseries/Regular/SmoothLine/index.ts     |   6 +-
 .../src/Timeseries/Step/index.ts                   |   6 +-
 .../plugin-chart-echarts/src/Timeseries/index.ts   |   6 +-
 .../src/Timeseries/transformProps.ts               |   8 +-
 .../src/Treemap/EchartsTreemap.tsx                 |  16 +-
 .../plugin-chart-echarts/src/Treemap/index.ts      |   6 +-
 .../src/utils/eventHandlers.ts                     |   7 +-
 .../plugin-chart-echarts/src/utils/series.ts       |   9 +
 .../plugin-chart-echarts/test/utils/series.test.ts |  58 ++-
 .../src/PivotTableChart.tsx                        |  19 +-
 .../src/plugin/controlPanel.tsx                    |   4 +-
 .../plugin-chart-pivot-table/src/plugin/index.ts   |  10 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |  12 +
 .../plugin-chart-table/src/controlPanel.tsx        |  32 +-
 .../plugins/plugin-chart-table/src/index.ts        |   8 +-
 .../plugin-chart-table/src/transformProps.ts       |   3 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |   1 +
 .../plugins/plugin-chart-table/test/testData.ts    |  14 +
 .../src/legacyPlugin/transformProps.ts             |   7 +-
 .../src/legacyPlugin/types.ts                      |   4 +-
 .../plugins/plugin-chart-word-cloud/src/types.ts   |   4 +-
 .../spec/fixtures/mockChartQueries.js              |   1 +
 superset-frontend/src/SqlLab/App.jsx               |   8 +-
 superset-frontend/src/SqlLab/actions/sqlLab.js     |   6 +-
 .../SqlLab/components/ShareSqlLabQuery/index.tsx   |   4 +-
 .../src/SqlLab/components/SouthPane/index.tsx      |   4 +-
 .../src/SqlLab/components/SqlEditor/index.jsx      |   4 +-
 .../SqlLab/components/TabbedSqlEditors/index.jsx   |   4 +-
 .../src/SqlLab/reducers/getInitialState.js         |  20 +-
 .../src/SqlLab/reducers/getInitialState.test.ts    |  54 ++
 superset-frontend/src/components/Chart/Chart.jsx   |  11 +-
 .../src/components/Chart/ChartContextMenu.tsx      |  30 +-
 .../components/Chart/DrillBy/DrillByChart.test.tsx |  70 +++
 .../src/components/Chart/DrillBy/DrillByChart.tsx  |  62 +++
 .../Chart/DrillBy/DrillByMenuItems.test.tsx        | 186 +++++++
 .../components/Chart/DrillBy/DrillByMenuItems.tsx  | 258 ++++++++++
 .../components/Chart/DrillBy/DrillByModal.test.tsx | 146 ++++++
 .../src/components/Chart/DrillBy/DrillByModal.tsx  | 182 +++++++
 .../Chart/DrillDetail/DrillDetailMenuItems.tsx     |  34 +-
 .../Chart/DrillDetail/DrillDetailPane.test.tsx     |  16 +-
 .../Chart/DrillDetail/DrillDetailPane.tsx          |   5 +-
 .../src/components/Chart/DrillDetail/types.ts      |  19 -
 .../components/Chart/MenuItemWithTruncation.tsx    |  59 +++
 .../src/components/Chart/chartAction.js            |   4 +-
 .../src/components/Chart/chartReducer.ts           |   4 +-
 .../components/Chart/{DrillDetail => }/types.ts    |   8 -
 .../src/components/Chart/utils.test.ts             |   3 +
 superset-frontend/src/components/Chart/utils.ts    |  38 +-
 .../Datasource/ChangeDatasourceModal.tsx           |   2 +-
 .../src/components/Datasource/DatasourceEditor.jsx |  12 +-
 .../src/components/Datasource/DatasourceModal.tsx  |   8 +-
 .../src/components/DynamicPlugins/index.tsx        |   3 +-
 .../src/components/FaveStar/FaveStar.test.tsx      |   4 +-
 .../src/components/FaveStar/index.tsx              |  12 +-
 .../ReportModal/HeaderReportDropdown/index.tsx     |   2 +-
 superset-frontend/src/components/Select/Select.tsx |  23 +-
 superset-frontend/src/components/Select/types.ts   |   5 +
 .../src/dashboard/actions/dashboardState.js        |  25 +-
 superset-frontend/src/dashboard/actions/hydrate.js |   4 +-
 .../src/dashboard/actions/nativeFilters.ts         |  23 +-
 .../src/dashboard/actions/sliceEntities.js         | 173 -------
 .../src/dashboard/actions/sliceEntities.test.js    | 102 ----
 .../src/dashboard/actions/sliceEntities.ts         | 178 +++++++
 .../DashboardBuilder/DashboardBuilder.test.tsx     |   3 +-
 .../DashboardBuilder/DashboardBuilder.tsx          |  31 +-
 .../dashboard/components/DashboardBuilder/state.ts |   3 +-
 .../components/FiltersBadge/FiltersBadge.test.tsx  |   8 +-
 .../dashboard/components/FiltersBadge/index.tsx    |  25 +-
 .../Header/HeaderActionsDropdown/index.jsx         |   4 +-
 .../src/dashboard/components/Header/index.jsx      |   3 +-
 .../dashboard/components/PropertiesModal/index.tsx |  10 +-
 .../src/dashboard/components/SliceAdder.jsx        | 151 ++++--
 .../src/dashboard/components/SliceAdder.test.jsx   |  56 +-
 .../SliceHeaderControls.test.tsx                   |   2 +-
 .../components/SliceHeaderControls/index.tsx       |  11 +-
 .../FilterBar/CrossFilters/Vertical.tsx            |   3 +
 .../FilterBar/CrossFilters/selectors.ts            |  15 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   3 +-
 .../FilterBar/FilterControls/FilterControls.tsx    |   4 +
 .../FilterBar/FilterControls/FilterValue.tsx       |  15 +-
 .../nativeFilters/FilterBar/Horizontal.tsx         |   5 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |  10 +-
 .../components/nativeFilters/FilterBar/index.tsx   |  65 ++-
 .../components/nativeFilters/FilterBar/types.ts    |   1 +
 .../components/nativeFilters/FilterBar/utils.ts    |  18 +
 .../FiltersConfigModal/FilterConfigurePane.tsx     |   3 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |   2 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |   3 +-
 .../FiltersConfigForm/DefaultValue.tsx             |  13 +-
 .../FiltersConfigForm/DependencyList.tsx           |   6 +-
 .../FilterScope/FilterScope.test.tsx               |   2 +-
 .../FiltersConfigForm/FilterScope/FilterScope.tsx  |  19 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  15 +-
 .../FiltersConfigForm/constants.ts}                |  39 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |  30 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |  11 +-
 .../components/nativeFilters/selectors.ts          |   1 +
 .../src/dashboard/containers/DashboardPage.tsx     |  16 +-
 .../src/dashboard/containers/SliceAdder.jsx        |  14 +-
 .../src/dashboard/reducers/nativeFilters.ts        |  13 +
 .../src/dashboard/reducers/sliceEntities.js        |  12 +-
 .../src/dashboard/reducers/sliceEntities.test.js   |   4 +-
 superset-frontend/src/dashboard/styles.ts          |   7 +
 superset-frontend/src/dashboard/types.ts           |  21 +
 .../src/dashboard/util/crossFilters.ts             |   5 +-
 .../dashboard/util/updateComponentParentsList.js   |  15 +-
 superset-frontend/src/dataMask/actions.ts          |   9 +-
 .../src/explore/actions/exploreActions.ts          |  21 +-
 .../src/explore/actions/hydrateExplore.ts          |  20 +
 .../explore/components/ControlPanelsContainer.tsx  |   2 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |   4 +-
 .../DataTablesPane/test/DataTablesPane.test.tsx    |   2 +-
 .../explore/components/DatasourcePanel/index.tsx   |   7 +-
 .../src/explore/components/ExploreChartPanel.jsx   |   7 +-
 .../ExploreViewContainer.test.tsx                  |   4 +-
 .../explore/components/PropertiesModal/index.tsx   |   9 +-
 .../src/explore/components/SaveModal.tsx           |   9 +-
 .../AnnotationLayerControl/AnnotationLayer.jsx     |  66 ++-
 .../AnnotationLayer.test.tsx                       |   8 +-
 .../ConditionalFormattingControl.tsx               |  37 +-
 .../controls/ConditionalFormattingControl/types.ts |   1 +
 .../index.tsx                                      |  11 +-
 .../useExploreAdditionalActionsMenu/index.jsx      |   4 +-
 .../getFormDataWithDashboardContext.ts             |  74 +--
 superset-frontend/src/featureFlags.ts              |   5 +-
 .../alerts}/AlertReportModal.test.jsx              |   2 +-
 .../alerts}/AlertReportModal.test.tsx              |   2 +-
 .../alert => features/alerts}/AlertReportModal.tsx |  78 +--
 .../components/AlertReportCronScheduler.test.tsx   |   0
 .../components/AlertReportCronScheduler.tsx        |   2 +-
 .../alerts}/components/AlertStatusIcon.tsx         |   0
 .../alerts}/components/NotificationMethod.tsx      |   2 +-
 .../alerts}/components/RecipientIcon.tsx           |   0
 .../{views/CRUD/alert => features/alerts}/types.ts |   5 +
 .../allEntities}/AllEntitiesTable.tsx              |   4 +-
 .../AnnotationLayerModal.test.jsx                  |   2 +-
 .../annotationLayers}/AnnotationLayerModal.tsx     |   0
 .../annotationLayers}/types.ts                     |   0
 .../annotations}/AnnotationModal.test.jsx          |   2 +-
 .../annotations}/AnnotationModal.tsx               |   0
 .../annotation => features/annotations}/types.ts   |   0
 .../CRUD/chart => features/charts}/ChartCard.tsx   |   4 +-
 .../cssTemplates}/CssTemplateModal.test.jsx        |   2 +-
 .../cssTemplates}/CssTemplateModal.tsx             |   0
 .../cssTemplates}/types.ts                         |   0
 .../dashboards}/DashboardCard.tsx                  |   4 +-
 .../dashboard => features/dashboards}/types.ts     |   0
 .../DatabaseConnectionForm/CommonParameters.tsx    |   0
 .../DatabaseConnectionForm/EncryptedField.tsx      |   0
 .../DatabaseConnectionForm/TableCatalog.tsx        |   0
 .../DatabaseConnectionForm/ValidatedInputField.tsx |   0
 .../DatabaseModal/DatabaseConnectionForm/index.tsx |   0
 .../databases}/DatabaseModal/ExtraOptions.tsx      |   2 +-
 .../databases}/DatabaseModal/ModalHeader.tsx       |   0
 .../databases}/DatabaseModal/SSHTunnelForm.tsx     |   1 -
 .../databases}/DatabaseModal/SSHTunnelSwitch.tsx   |   0
 .../databases}/DatabaseModal/SqlAlchemyForm.tsx    |   1 -
 .../databases}/DatabaseModal/index.test.tsx        |   5 +-
 .../databases}/DatabaseModal/index.tsx             |   8 +-
 .../databases}/DatabaseModal/styles.ts             |   0
 .../data/database => features/databases}/state.ts  |   0
 .../data/database => features/databases}/types.ts  |   0
 .../DatasetPanel/DatasetPanel.stories.tsx          |   0
 .../AddDataset/DatasetPanel/DatasetPanel.test.tsx  |   2 +-
 .../AddDataset/DatasetPanel/DatasetPanel.tsx       |   2 +-
 .../AddDataset/DatasetPanel/MessageContent.tsx     |   0
 .../datasets}/AddDataset/DatasetPanel/fixtures.ts  |   2 +-
 .../datasets}/AddDataset/DatasetPanel/index.tsx    |   2 +-
 .../datasets}/AddDataset/DatasetPanel/types.ts     |   0
 .../AddDataset/EditDataset/EditDataset.test.tsx    |   0
 .../EditDataset/UsageTab/UsageTab.test.tsx         |   0
 .../AddDataset/EditDataset/UsageTab/index.tsx      |   0
 .../datasets}/AddDataset/EditDataset/index.tsx     |   2 +-
 .../datasets}/AddDataset/Footer/Footer.test.tsx    |   2 +-
 .../datasets}/AddDataset/Footer/index.tsx          |   0
 .../datasets}/AddDataset/Header/Header.test.tsx    |   4 +-
 .../datasets}/AddDataset/Header/index.tsx          |  10 +-
 .../AddDataset/LeftPanel/LeftPanel.test.tsx        |   4 +-
 .../datasets}/AddDataset/LeftPanel/index.tsx       |   2 +-
 .../AddDataset/RightPanel/RightPanel.test.tsx      |   2 +-
 .../datasets}/AddDataset/RightPanel/index.tsx      |   0
 .../datasets}/AddDataset/types.tsx                 |   0
 .../datasets}/DatasetLayout/DatasetLayout.test.tsx |  12 +-
 .../datasets}/DatasetLayout/index.tsx              |   2 +-
 .../datasets}/DuplicateDatasetModal.tsx            |   0
 .../dataset => features/datasets}/constants.ts     |   0
 .../datasets/hooks/useDatasetLists.ts}             |  93 +---
 .../datasets/hooks/useGetDatasetRelatedCounts.ts   |  55 ++
 .../metadataBar/DatasetMetadataBar.stories.tsx     |   2 +-
 .../metadataBar/useDatasetMetadataBar.test.tsx     |  70 ++-
 .../datasets/metadataBar/useDatasetMetadataBar.tsx |  41 +-
 .../data/dataset => features/datasets}/styles.ts   |   0
 .../data/dataset => features/datasets}/types.ts    |   0
 .../home}/ActivityTable.test.tsx                   |   2 +-
 .../welcome => features/home}/ActivityTable.tsx    |   4 +-
 .../welcome => features/home}/ChartTable.test.tsx  |   3 +-
 .../CRUD/welcome => features/home}/ChartTable.tsx  |   4 +-
 .../home}/DashboardTable.test.tsx                  |   4 +-
 .../welcome => features/home}/DashboardTable.tsx   |   4 +-
 .../welcome => features/home}/EmptyState.test.tsx  |   2 +-
 .../CRUD/welcome => features/home}/EmptyState.tsx  |   0
 .../home}/LanguagePicker.test.tsx                  |   0
 .../home}/LanguagePicker.tsx                       |   0
 .../components => features/home}/Menu.test.tsx     |   0
 .../{views/components => features/home}/Menu.tsx   |   0
 .../home}/RightMenu.test.tsx                       |   2 +-
 .../components => features/home}/RightMenu.tsx     |  11 +-
 .../home}/SavedQueries.test.tsx                    |   5 +-
 .../welcome => features/home}/SavedQueries.tsx     |   6 +-
 .../components => features/home}/SubMenu.test.tsx  |   0
 .../components => features/home}/SubMenu.tsx       |   7 +-
 .../common.ts => features/home/commonMenuData.ts}  |   0
 .../{views/components => features/home}/types.ts   |  10 +
 .../queries}/QueryPreviewModal.test.tsx            |   2 +-
 .../queries}/QueryPreviewModal.tsx                 |   4 +-
 .../queries}/SavedQueryPreviewModal.test.jsx       |   2 +-
 .../queries}/SavedQueryPreviewModal.tsx            |   4 +-
 .../queries/SyntaxHighlighterCopy.tsx}             |   0
 .../features/queries/hooks/useQueryPreviewState.ts |  76 +++
 .../src/{views/CRUD => features}/tags/TagCard.tsx  |   6 +-
 superset-frontend/src/{ => features/tags}/tags.ts  |   0
 .../components/Select/SelectFilterPlugin.tsx       |  19 +-
 superset-frontend/src/middleware/asyncEvent.ts     |   3 +-
 .../pages/AlertReportList/AlertReportList.test.jsx |   2 +-
 .../src/pages/AlertReportList/index.tsx            |  11 +-
 superset-frontend/src/pages/AllEntities/index.tsx  |   2 +-
 .../AnnotationLayerList.test.jsx                   |   4 +-
 .../src/pages/AnnotationLayerList/index.tsx        |   6 +-
 .../pages/AnnotationList/AnnotationList.test.jsx   |   2 +-
 .../src/pages/AnnotationList/index.tsx             |   6 +-
 .../src/pages/ChartCreation/index.tsx              |   9 +-
 superset-frontend/src/pages/ChartList/index.tsx    |   7 +-
 .../pages/CssTemplateList/CssTemplateList.test.jsx |   2 +-
 .../src/pages/CssTemplateList/index.tsx            |   6 +-
 .../src/pages/DashboardList/index.tsx              |  12 +-
 .../src/pages/DatabaseList/DatabaseList.test.jsx   |   4 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |  12 +-
 .../src/pages/DatasetCreation/index.tsx            |  16 +-
 .../src/pages/DatasetList/DatasetList.test.tsx     |   8 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |  15 +-
 .../src/pages/ExecutionLogList/index.tsx           |   6 +-
 superset-frontend/src/pages/Home/Home.test.tsx     |   2 +-
 superset-frontend/src/pages/Home/index.tsx         | 206 ++++----
 .../QueryHistoryList/QueryHistoryList.test.tsx     |   4 +-
 .../src/pages/QueryHistoryList/index.tsx           |   6 +-
 .../pages/SavedQueryList/SavedQueryList.test.jsx   |   2 +-
 .../src/pages/SavedQueryList/index.tsx             |  13 +-
 superset-frontend/src/pages/Tags/index.tsx         |  10 +-
 .../src/profile/components/Favorites.tsx           |  31 +-
 superset-frontend/src/profile/types.ts             |   9 +
 superset-frontend/src/types/bootstrapTypes.ts      |   2 +-
 .../types.ts => utils/cachedSupersetGet.ts}        |  16 +-
 superset-frontend/src/utils/hostNamesConfig.js     |   7 +-
 superset-frontend/src/utils/localStorageHelpers.ts |   2 +
 superset-frontend/src/utils/simpleFilterToAdhoc.ts |  69 +++
 superset-frontend/src/views/App.tsx                |   2 +-
 superset-frontend/src/views/CRUD/hooks.ts          |  23 +-
 superset-frontend/src/views/CRUD/utils.test.tsx    |   2 +-
 superset-frontend/src/views/CRUD/utils.tsx         |   2 +-
 superset-frontend/src/views/menu.tsx               |  16 +-
 superset-frontend/src/views/types.ts               |   2 +-
 superset-websocket/package-lock.json               | 380 ++++++++++++--
 superset-websocket/package.json                    |   6 +-
 superset/charts/api.py                             | 103 +++-
 superset/charts/commands/export.py                 |   2 +-
 superset/charts/dao.py                             |  30 ++
 superset/charts/filters.py                         |  43 +-
 superset/charts/post_processing.py                 |  11 +-
 superset/common/query_context.py                   |   5 +-
 superset/common/query_context_processor.py         |  12 +-
 superset/config.py                                 |   4 +
 superset/connectors/sqla/models.py                 |  44 +-
 superset/constants.py                              |   3 +
 superset/dashboards/api.py                         |  90 ++++
 .../dashboards/commands/importers/v1/__init__.py   |   9 +-
 superset/dashboards/dao.py                         |  29 ++
 superset/db_engine_specs/bigquery.py               |  99 ++--
 superset/extensions/ssh.py                         |   4 +-
 ...2af1b_drop_postgres_enum_constrains_for_tags.py |  47 ++
 superset/models/dashboard.py                       |  15 +-
 superset/models/helpers.py                         |  11 +
 superset/models/slice.py                           |  21 +-
 superset/models/sql_lab.py                         |  17 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |  18 +-
 superset/utils/csv.py                              |   3 +
 superset/utils/pandas_postprocessing/pivot.py      |   2 +-
 superset/views/base.py                             |   3 +
 superset/views/core.py                             |  49 +-
 superset/viz.py                                    |  16 +-
 tests/integration_tests/charts/api_tests.py        |  98 +++-
 tests/integration_tests/charts/commands_tests.py   |  50 +-
 tests/integration_tests/charts/data/api_tests.py   |   8 +
 tests/integration_tests/csv_upload_tests.py        |   5 +-
 tests/integration_tests/dashboards/api_tests.py    |  70 +++
 .../integration_tests/dashboards/commands_tests.py |   3 +
 .../db_engine_specs/bigquery_tests.py              |  47 +-
 tests/integration_tests/tags/dao_tests.py          |   5 +-
 .../integration_tests/tasks/async_queries_tests.py |   1 +
 tests/unit_tests/charts/dao/dao_tests.py           |  35 +-
 tests/unit_tests/charts/test_post_processing.py    |  11 +-
 tests/unit_tests/dashboards/dao_tests.py           |  79 +++
 354 files changed, 5065 insertions(+), 1684 deletions(-)