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

michellet pushed a commit to branch release--0.33
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git

commit 99de5a44fceffb402ef7223436a1af89516035ff
Author: michellethomas <[email protected]>
AuthorDate: Fri May 24 11:10:35 2019 -0700

    Remove aggregates from metric options if datasource has no columns (#7586)
    
    
    (cherry picked from commit 47ba2ad3947a83bb5299c9f80a9aedd4a756a004)
---
 .../javascripts/explore/components/MetricsControl_spec.jsx     |  8 ++++++++
 .../assets/src/explore/components/controls/MetricsControl.jsx  | 10 +++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git 
a/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx 
b/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
index 6f2c657..31bddf8 100644
--- 
a/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
+++ 
b/superset/assets/spec/javascripts/explore/components/MetricsControl_spec.jsx
@@ -85,6 +85,14 @@ describe('MetricsControl', () => {
       ]);
     });
 
+    it('does not show aggregates in options if no columns', () => {
+      const { wrapper } = setup({ columns: [] });
+      expect(wrapper.state('options')).toEqual([
+        { optionName: 'sum__value', metric_name: 'sum__value', expression: 
'SUM(energy_usage.value)' },
+        { optionName: 'avg__value', metric_name: 'avg__value', expression: 
'AVG(energy_usage.value)' },
+      ]);
+    });
+
     it('coerces Adhoc Metrics from form data into instances of the AdhocMetric 
class and leaves saved metrics', () => {
       const { wrapper } = setup({
         value: [
diff --git a/superset/assets/src/explore/components/controls/MetricsControl.jsx 
b/superset/assets/src/explore/components/controls/MetricsControl.jsx
index b42cc81..1e49355 100644
--- a/superset/assets/src/explore/components/controls/MetricsControl.jsx
+++ b/superset/assets/src/explore/components/controls/MetricsControl.jsx
@@ -238,10 +238,14 @@ export default class MetricsControl extends 
React.PureComponent {
   }
 
   optionsForSelect(props) {
+    const { columns, savedMetrics } = props;
+    const aggregates = columns && columns.length ?
+      Object.keys(AGGREGATES).map(aggregate => ({ aggregate_name: aggregate 
})) :
+      [];
     const options = [
-      ...props.columns,
-      ...Object.keys(AGGREGATES).map(aggregate => ({ aggregate_name: aggregate 
})),
-      ...props.savedMetrics,
+      ...columns,
+      ...aggregates,
+      ...savedMetrics,
     ];
 
     return options.reduce((results, option) => {

Reply via email to