You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ar...@apache.org on 2024/03/08 00:44:19 UTC

(superset) 09/09: Table with Time Comparison:

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

arivero pushed a commit to branch table-time-comparison
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 6c11355037d7f9ab9b34cbd5c361277bb385eaeb
Author: Antonio Rivero <an...@gmail.com>
AuthorDate: Thu Mar 7 18:02:25 2024 +0100

    Table with Time Comparison:
    
    - Fix table rendering when switching from Agg mode to Raw mode and viceversa
---
 .../plugins/plugin-chart-table/src/buildQuery.ts      |  5 +++--
 .../plugins/plugin-chart-table/src/controlPanel.tsx   | 19 ++++++++++++++-----
 .../plugins/plugin-chart-table/src/transformProps.ts  |  3 ++-
 3 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts b/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
index f892d2fe94..e90eafeebe 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
+++ b/superset-frontend/plugins/plugin-chart-table/src/buildQuery.ts
@@ -64,10 +64,11 @@ const buildQuery: BuildQuery<TableChartFormData> = (
     time_comparison: timeComparison,
     enable_time_comparison,
   } = formData;
+  const queryMode = getQueryMode(formData);
   const canUseTimeComparison =
     enable_time_comparison &&
-    isFeatureEnabled(FeatureFlag.ChartPluginsExperimental);
-  const queryMode = getQueryMode(formData);
+    isFeatureEnabled(FeatureFlag.ChartPluginsExperimental) &&
+    queryMode === QueryMode.Aggregate;
   const sortByMetric = ensureIsArray(formData.timeseries_limit_metric)[0];
   const time_grain_sqla =
     extra_form_data?.time_grain_sqla || formData.time_grain_sqla;
diff --git a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
index 78a6a1eeab..cf0ad3d952 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx
@@ -94,7 +94,13 @@ const queryMode: ControlConfig<'RadioButtonControl'> = {
     [QueryMode.Raw, QueryModeLabel[QueryMode.Raw]],
   ],
   mapStateToProps: ({ controls }) => ({ value: getQueryMode(controls) }),
-  rerender: ['all_columns', 'groupby', 'metrics', 'percent_metrics'],
+  rerender: [
+    'all_columns',
+    'groupby',
+    'metrics',
+    'percent_metrics',
+    'enable_time_comparison',
+  ],
 };
 
 const allColumnsControl: typeof sharedControls.groupby = {
@@ -269,8 +275,9 @@ const config: ControlPanelConfig = {
               label: t('Enable Time Comparison'),
               description: t('Enable time comparison (experimental feature)'),
               default: false,
-              visibility: () =>
-                isFeatureEnabled(FeatureFlag.ChartPluginsExperimental),
+              visibility: ({ controls }) =>
+                isFeatureEnabled(FeatureFlag.ChartPluginsExperimental) &&
+                isAggMode({ controls }),
             },
           },
         ],
@@ -297,7 +304,8 @@ const config: ControlPanelConfig = {
               ),
               visibility: ({ controls }) =>
                 Boolean(controls?.enable_time_comparison?.value) &&
-                isFeatureEnabled(FeatureFlag.ChartPluginsExperimental),
+                isFeatureEnabled(FeatureFlag.ChartPluginsExperimental) &&
+                isAggMode({ controls }),
             },
           },
         ],
@@ -312,7 +320,8 @@ const config: ControlPanelConfig = {
               visibility: ({ controls }) =>
                 Boolean(controls?.enable_time_comparison?.value) &&
                 controls?.time_comparison?.value ===
-                  ComparisonTimeRangeType.Custom,
+                  ComparisonTimeRangeType.Custom &&
+                isAggMode({ controls }),
               mapStateToProps: (
                 state: ControlPanelState,
                 controlState: ControlState,
diff --git a/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts b/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts
index 00ff94504f..64fb198016 100644
--- a/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-table/src/transformProps.ts
@@ -377,7 +377,8 @@ const transformProps = (
   } = formData;
   const canUseTimeComparison =
     enableTimeComparison &&
-    isFeatureEnabled(FeatureFlag.ChartPluginsExperimental);
+    isFeatureEnabled(FeatureFlag.ChartPluginsExperimental) &&
+    queryMode === QueryMode.Aggregate;
   const timeGrain = extractTimegrain(formData);
 
   const [metrics, percentMetrics, columns] = processColumns(chartProps);