This is an automated email from the ASF dual-hosted git repository.
msyavuz pushed a change to branch msyavuz/fix/timeshift-overrides
in repository https://gitbox.apache.org/repos/asf/superset.git
from 71849dc934 fix: test
add 9c771fb2ba fix: preserve correct column order when table layout is
changed with time comparison enabled (#34300)
add c25b4221f8 fix(npm): more reliable execution of `npm run update-maps`
(#34305)
add 8783579aa8 fix(cartodiagram): add missing locales for rendering
echarts (#34268)
add 5f11f9097a fix: Charts list is displaying empty dataset names when
there's no schema (#34315)
add e741a3167f feat: add a theme CRUD page to manage themes (#34182)
add 1be2287b3a feat(timeseries): enhance 'Series Limit' to support
grouping the long tail (#34308)
add c49789167b style(chart): restyle table pagination (#34311)
add 1a4e2173f5 fix(NavBar): Add brand text back (#34318)
add 913e068113 style(FastVizSwitcher): Adjust padding for FastVizSwitcher
selector (#34317)
add 604d72cc98 feat: introducing a docker-compose-light.yml for lighter
development (#34324)
add 22b3cc0480 chore: bump BigQuery dialect to 1.15.0 (#34371)
add dc0c389488 docs(development): fix 2 typos in the dockerfile (#34341)
add f554848c9f fix(PivotTable): Render html in cells if allowRenderHtml is
true (#34351)
add ff76ab647f build(deps): update `ag-grid` to non-breaking major v34
(#34326)
add bb572983cd feat(theming): Align embedded sdk with theme configs
(#34273)
add 914ce9aa4f feat: read column metadata (#34359)
add 122bb68e5a fix: subquery alias in RLS (#34374)
add a9cd58508b chore(deps): bump cookie and @types/cookie in
/superset-websocket (#34335)
add 32626ab707 fix: use catalog name on generated queries (#34360)
add c9e06714f8 fix: prevent theme initialization errors during fresh
installs (#34339)
add 972be15dda feat: focus on text input when modal opens (#34379)
add 16db999067 fix: rate limiting issues with example data hosted on
github.com (#34381)
add 8de8f95a3c feat: allow creating dataset without exploring (#34380)
add 0964a8bb7a fix(big number with trendline): running 2 identical queries
for no good reason (#34296)
add a1c39d4906 feat(charts): Enable async buildQuery support for complex
chart logic (#34383)
add 14e90a0f52 feat: Add GitHub Codespaces support with
docker-compose-light (#34376)
add eca28582b6 feat(i18n): update Spanish translations (messages.po)
(#34206)
add 131ae5aa9d docs(development): fix typo in the dockerfile (#34387)
add bf967d6ba4 fix(charts): Fix unquoted 'Others' literal in series limit
GROUP BY clause (#34390)
add 6006a21378 docs(development): fix comment in the dockerfile (#34391)
add 81a01c3e59 Merge branch 'master' into msyavuz/fix/timeshift-overrides
No new revisions were added by this update.
Summary of changes:
.devcontainer/README.md | 5 +
.devcontainer/devcontainer.json | 52 +
.devcontainer/setup-dev.sh | 32 +
.devcontainer/start-superset.sh | 59 +
.pre-commit-config.yaml | 4 +-
Dockerfile | 6 +-
LLMS.md | 45 +-
docker-compose-image-tag.yml | 3 +
docker-compose-light.yml | 157 +
docker-compose-non-dev.yml | 3 +
docker-compose.yml | 3 +
docker/.env | 6 +-
docker/pythonpath_dev/.gitignore | 1 +
docker/pythonpath_dev/superset_config.py | 2 +-
.../pythonpath_dev/superset_config_docker_light.py | 37 +-
docs/docs/configuration/theming.mdx | 89 +-
docs/docs/contributing/development.mdx | 72 +
docs/docs/installation/docker-compose.mdx | 34 +-
docs/package.json | 3 +-
pyproject.toml | 2 +-
requirements/development.txt | 2 +-
superset-frontend/package-lock.json | 34 +-
superset-frontend/package.json | 8 +-
.../src/sections/echartsTimeSeriesQuery.tsx | 2 +-
.../src/shared-controls/customControls.tsx | 62 +-
.../src/shared-controls/sharedControls.tsx | 14 +
.../src/components/AsyncAceEditor/index.tsx | 7 +-
.../AsyncAceEditor/useJsonValidation.test.ts | 75 +
.../components/AsyncAceEditor/useJsonValidation.ts | 82 +
.../src/components/CodeSyntaxHighlighter/index.tsx | 11 +-
.../src/components/Icons/BaseIcon.tsx | 8 +-
.../src/components/InfoTooltip/index.tsx | 4 +-
.../src/components/Label/index.tsx | 4 +-
.../TelemetryPixel/TelemetryPixel.test.tsx | 2 +-
.../src/components/TelemetryPixel/index.tsx | 3 +-
.../src/components/ThemeEditor/index.tsx | 150 -
.../src/components/ThemeSelect/index.tsx | 79 -
.../components/ThemeSubMenu/ThemeSubMenu.test.tsx | 273 +
.../src/components/ThemeSubMenu/index.tsx | 170 +
.../src/components/UnsavedChangesModal/index.tsx | 100 +-
.../superset-ui-core/src/components/index.ts | 2 +
.../superset-ui-core/src/query/buildQueryObject.ts | 2 +
.../superset-ui-core/src/theme/Theme.test.tsx | 18 -
.../packages/superset-ui-core/src/theme/Theme.tsx | 70 +-
.../packages/superset-ui-core/src/theme/index.tsx | 17 +-
.../packages/superset-ui-core/src/theme/types.ts | 22 +
.../src/theme/utils/themeUtils.test.ts | 134 +
.../superset-ui-core/src/theme/utils/themeUtils.ts | 113 +
.../superset-ui-core/src/utils/featureFlags.ts | 3 +-
.../scripts/Country Map GeoJSON Generator.ipynb | Bin 11105571 -> 2319015
bytes
.../src/vendor/parcoords/d3.parcoords.js | 8 +-
.../plugin-chart-ag-grid-table/package.json | 4 +-
.../plugins/plugin-chart-cartodiagram/package.json | 2 +
.../src/components/ChartLayer.tsx | 8 +
.../src/components/ChartWrapper.tsx | 21 +-
.../src/components/OlChartMap.tsx | 5 +
.../plugins/plugin-chart-cartodiagram/src/types.ts | 2 +
.../src/util/chartUtil.tsx | 2 +
.../test/components/chartLayer.test.ts | 2 +
.../src/BigNumber/BigNumberViz.tsx | 382 +-
.../BigNumberWithTrendline/buildQuery.test.ts | 45 +-
.../BigNumber/BigNumberWithTrendline/buildQuery.ts | 57 +-
.../BigNumberWithTrendline/transformProps.test.ts | 37 +-
.../BigNumberWithTrendline/transformProps.ts | 68 +-
.../src/Sankey/transformProps.ts | 4 +-
.../src/Tree/transformProps.ts | 4 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 85 +-
.../test/BigNumber/transformProps.test.ts | 5 +-
.../test/MixedTimeseries/buildQuery.test.ts | 2 +
.../src/react-pivottable/TableRenderers.jsx | 14 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 9 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 6 +-
.../src/components/Chart/chartAction.js | 22 +-
.../src/components/Chart/chartActions.test.js | 17 +-
.../src/components/CrudThemeProvider.tsx | 76 +
.../components/ErrorMessage/BasicErrorAlert.tsx | 9 +-
.../src/components/ListView/Filters/Search.tsx | 8 +-
superset-frontend/src/components/Tag/index.tsx | 3 +-
.../src/dashboard/actions/dashboardInfo.ts | 46 +
.../components/CssEditor/CssEditor.test.tsx | 38 +-
.../src/dashboard/components/CssEditor/index.tsx | 224 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 1 +
.../dashboard/components/Header/Header.test.tsx | 6 +-
.../src/dashboard/components/Header/types.ts | 4 +
.../Header/useHeaderActionsDropdownMenu.tsx | 18 +-
.../dashboard/components/PropertiesModal/index.tsx | 10 +-
.../components/RefreshIntervalModal.test.tsx | 14 +-
.../src/dashboard/components/SaveModal.tsx | 280 +-
.../dashboard/components/gridComponents/Tabs.jsx | 1 -
.../src/dashboard/containers/DashboardPage.tsx | 29 +-
.../src/dashboard/reducers/dashboardInfo.js | 7 +
superset-frontend/src/dashboard/types.ts | 6 +
.../EmbeddedContextProviders.tsx} | 36 +-
superset-frontend/src/embedded/index.tsx | 40 +-
.../src/explore/components/SaveModal.tsx | 7 +-
.../explore/components/controls/ViewQuery.test.tsx | 2 +-
.../src/explore/components/controls/ViewQuery.tsx | 128 +-
.../explore/components/controls/ViewQueryModal.tsx | 4 +-
.../controls/VizTypeControl/FastVizSwitcher.tsx | 13 +-
.../components/controls/VizTypeControl/VizTile.tsx | 3 +-
.../VizTypeControl/VizTypeControl.test.tsx | 21 +
.../controls/VizTypeControl/VizTypeGallery.tsx | 7 +
.../src/explore/controlPanels/sections.tsx | 3 +-
.../src/explore/exploreUtils/exploreUtils.test.jsx | 4 +-
.../src/explore/exploreUtils/index.js | 6 +-
.../src/features/annotations/AnnotationModal.tsx | 10 +-
.../databases/DatabaseModal/ExtraOptions.tsx | 29 +
.../databases/DatabaseModal/SSHTunnelForm.tsx | 2 +-
.../src/features/databases/DatabaseModal/styles.ts | 3 +-
.../UploadDataModel/UploadDataModal.test.tsx | 28 +-
.../datasets/AddDataset/Footer/Footer.test.tsx | 146 +-
.../features/datasets/AddDataset/Footer/index.tsx | 52 +-
superset-frontend/src/features/home/Menu.test.tsx | 39 +
superset-frontend/src/features/home/Menu.tsx | 9 +-
superset-frontend/src/features/home/RightMenu.tsx | 46 +-
.../src/features/themes/ThemeModal.test.tsx | 286 +
.../src/features/themes/ThemeModal.tsx | 414 +
.../src/features/{cssTemplates => themes}/types.ts | 8 +-
.../src/pages/ChartList/ChartList.test.jsx | 90 +
superset-frontend/src/pages/ChartList/index.tsx | 5 +-
.../src/pages/ThemeList/ThemeList.test.tsx | 201 +
superset-frontend/src/pages/ThemeList/index.tsx | 524 ++
superset-frontend/src/theme/ThemeController.ts | 332 +-
superset-frontend/src/theme/ThemeProvider.tsx | 74 +-
.../src/theme/tests/ThemeController.test.ts | 309 +-
.../src/theme/tests/ThemeProvider.test.tsx | 3 +-
superset-frontend/src/types/Dashboard.ts | 5 +
superset-frontend/src/types/bootstrapTypes.ts | 18 +-
superset-frontend/src/views/CRUD/types.ts | 3 +-
superset-frontend/src/views/routes.tsx | 8 +
superset-frontend/webpack.config.js | 6 +
superset-websocket/package-lock.json | 29 +-
superset-websocket/package.json | 7 +-
superset-websocket/spec/config.test.ts | 1 +
superset-websocket/spec/index.test.ts | 35 +-
superset-websocket/src/index.ts | 4 +-
superset/charts/schemas.py | 8 +
superset/commands/dataset/importers/v1/utils.py | 5 +
superset/commands/importers/v1/utils.py | 6 +
.../theme}/__init__.py | 0
superset/commands/theme/delete.py | 116 +
.../commands/{security => theme}/exceptions.py | 18 +-
superset/commands/theme/export.py | 75 +
superset/commands/theme/import_themes.py | 85 +
.../theme/importers}/__init__.py | 0
.../{chart => theme}/importers/dispatcher.py | 11 +-
superset/commands/theme/seed.py | 108 +
.../ssh_tunnel/delete.py => theme/update.py} | 42 +-
superset/common/query_object.py | 3 +
superset/config.py | 42 +-
superset/connectors/sqla/models.py | 25 +-
superset/daos/{security.py => theme.py} | 14 +-
superset/dashboards/api.py | 1 +
superset/dashboards/schemas.py | 13 +
superset/examples/bart_lines.py | 2 +-
superset/examples/birth_names.py | 10 +-
.../configs/datasets/examples/FCC_2018_Survey.yaml | 2 +-
.../configs/datasets/examples/channel_members.yaml | 2 +-
.../configs/datasets/examples/channels.yaml | 2 +-
.../datasets/examples/cleaned_sales_data.yaml | 2 +-
.../configs/datasets/examples/covid_vaccines.yaml | 2 +-
.../configs/datasets/examples/exported_stats.yaml | 2 +-
.../configs/datasets/examples/messages.yaml | 2 +-
.../configs/datasets/examples/threads.yaml | 2 +-
.../datasets/examples/unicode_test.test.yaml | 2 +-
.../examples/configs/datasets/examples/users.yaml | 2 +-
.../configs/datasets/examples/users_channels.yaml | 2 +-
.../datasets/examples/video_game_sales.yaml | 2 +-
superset/examples/country_map.py | 2 +-
superset/examples/energy.py | 2 +-
superset/examples/flights.py | 4 +-
superset/examples/helpers.py | 20 +-
superset/examples/long_lat.py | 2 +-
superset/examples/multiformat_time_series.py | 2 +-
superset/examples/paris.py | 2 +-
superset/examples/random_time_series.py | 4 +-
superset/examples/sf_population_polygons.py | 4 +-
superset/examples/world_bank.py | 2 +-
superset/initialization/__init__.py | 44 +-
...=> 2025-07-15_16-40_3fd555e76e3d_theme_crud.py} | 66 +-
...d1fb11291f2_add_theme_id_to_dashboard_model.py} | 42 +-
superset/models/core.py | 12 +
superset/models/dashboard.py | 3 +
superset/models/helpers.py | 125 +-
superset/sql/parse.py | 17 +-
superset/themes/api.py | 534 ++
superset/{css_templates => themes}/filters.py | 10 +-
superset/themes/schemas.py | 88 +
superset/translations/es/LC_MESSAGES/messages.po | 9264 ++++++++------------
superset/views/base.py | 19 +-
superset/views/{css_templates.py => themes.py} | 7 +-
tests/integration_tests/base_tests.py | 17 +-
tests/integration_tests/dashboards/api_tests.py | 33 +-
.../integration_tests/dashboards/commands_tests.py | 4 +-
.../dashboards/test_theme_integration.py | 361 +
.../integration_tests/themes}/__init__.py | 0
.../integration_tests/themes/api_endpoints_test.py | 322 +
tests/integration_tests/themes/api_tests.py | 398 +
tests/unit_tests/connectors/sqla/models_test.py | 409 +
tests/unit_tests/models/helpers_test.py | 314 +
tests/unit_tests/queries/query_object_test.py | 1 +
tests/unit_tests/sql/parse_tests.py | 28 +-
tests/unit_tests/sql_lab_test.py | 4 +-
.../unit_tests/themes}/__init__.py | 0
tests/unit_tests/themes/api_test.py | 119 +
tests/unit_tests/themes/commands_test.py | 229 +
tests/unit_tests/themes/dao_test.py | 56 +
tests/unit_tests/themes/model_test.py | 53 +
tests/unit_tests/themes/test_utils.py | 1 +
209 files changed, 12975 insertions(+), 6934 deletions(-)
create mode 100644 .devcontainer/README.md
create mode 100644 .devcontainer/devcontainer.json
create mode 100755 .devcontainer/setup-dev.sh
create mode 100755 .devcontainer/start-superset.sh
create mode 100644 docker-compose-light.yml
copy
superset/migrations/versions/2020-08-08_18-10_f2672aa8350a_add_slack_to_alerts.py
=> docker/pythonpath_dev/superset_config_docker_light.py (53%)
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/useJsonValidation.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/useJsonValidation.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/src/components/ThemeEditor/index.tsx
delete mode 100644
superset-frontend/packages/superset-ui-core/src/components/ThemeSelect/index.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/ThemeSubMenu/ThemeSubMenu.test.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/ThemeSubMenu/index.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/theme/utils/themeUtils.ts
create mode 100644 superset-frontend/src/components/CrudThemeProvider.tsx
copy superset-frontend/src/{views/RootContextProviders.tsx =>
embedded/EmbeddedContextProviders.tsx} (75%)
create mode 100644 superset-frontend/src/features/themes/ThemeModal.test.tsx
create mode 100644 superset-frontend/src/features/themes/ThemeModal.tsx
copy superset-frontend/src/features/{cssTemplates => themes}/types.ts (89%)
create mode 100644 superset-frontend/src/pages/ThemeList/ThemeList.test.tsx
create mode 100644 superset-frontend/src/pages/ThemeList/index.tsx
copy superset/{advanced_data_type => commands/theme}/__init__.py (100%)
create mode 100644 superset/commands/theme/delete.py
copy superset/commands/{security => theme}/exceptions.py (71%)
create mode 100644 superset/commands/theme/export.py
create mode 100644 superset/commands/theme/import_themes.py
copy superset/{advanced_data_type => commands/theme/importers}/__init__.py
(100%)
copy superset/commands/{chart => theme}/importers/dispatcher.py (90%)
create mode 100644 superset/commands/theme/seed.py
copy superset/commands/{database/ssh_tunnel/delete.py => theme/update.py} (54%)
copy superset/daos/{security.py => theme.py} (69%)
copy
superset/migrations/versions/{2022-03-04_09-59_6766938c6065_add_key_value_store.py
=> 2025-07-15_16-40_3fd555e76e3d_theme_crud.py} (54%)
copy
superset/migrations/versions/{2024-05-01_10-52_58d051681a3b_add_catalog_perm_to_tables.py
=> 2025-07-15_18-41_cd1fb11291f2_add_theme_id_to_dashboard_model.py} (55%)
create mode 100644 superset/themes/api.py
copy superset/{css_templates => themes}/filters.py (80%)
create mode 100644 superset/themes/schemas.py
copy superset/views/{css_templates.py => themes.py} (89%)
create mode 100644 tests/integration_tests/dashboards/test_theme_integration.py
copy {superset/advanced_data_type =>
tests/integration_tests/themes}/__init__.py (100%)
create mode 100644 tests/integration_tests/themes/api_endpoints_test.py
create mode 100644 tests/integration_tests/themes/api_tests.py
copy {superset/advanced_data_type => tests/unit_tests/themes}/__init__.py
(100%)
create mode 100644 tests/unit_tests/themes/api_test.py
create mode 100644 tests/unit_tests/themes/commands_test.py
create mode 100644 tests/unit_tests/themes/dao_test.py
create mode 100644 tests/unit_tests/themes/model_test.py