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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1769804  Minor fixes to sunburst (#4349)
1769804 is described below

commit 1769804ffd8f8db0b42e0bd6271b52f19e36cff4
Author: Maxime Beauchemin <maximebeauche...@gmail.com>
AuthorDate: Fri Feb 9 14:27:22 2018 -0800

    Minor fixes to sunburst (#4349)
    
    * Minor fixes to sunburst
    
    closes https://github.com/apache/incubator-superset/issues/4340
    
    * nit
---
 .../assets/javascripts/explore/stores/visTypes.js  |  5 ++--
 superset/assets/visualizations/sunburst.js         |  2 +-
 superset/viz.py                                    | 28 ++++++++++------------
 3 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/superset/assets/javascripts/explore/stores/visTypes.js 
b/superset/assets/javascripts/explore/stores/visTypes.js
index 38ff52d..9d62ead 100644
--- a/superset/assets/javascripts/explore/stores/visTypes.js
+++ b/superset/assets/javascripts/explore/stores/visTypes.js
@@ -1112,9 +1112,10 @@ export const visTypes = {
       },
       secondary_metric: {
         label: t('Secondary Metric'),
-        description: t('This secondary metric is used to ' +
+        default: null,
+        description: t('[optional] this secondary metric is used to ' +
         'define the color as a ratio against the primary metric. ' +
-        'If the two metrics match, color is mapped level groups'),
+        'When omitted, the color is categorical and based on labels'),
       },
       groupby: {
         label: t('Hierarchy'),
diff --git a/superset/assets/visualizations/sunburst.js 
b/superset/assets/visualizations/sunburst.js
index 41859e3..199d182 100644
--- a/superset/assets/visualizations/sunburst.js
+++ b/superset/assets/visualizations/sunburst.js
@@ -347,7 +347,7 @@ function sunburstVis(slice, payload) {
     let ext;
     const fd = slice.formData;
 
-    if (fd.metric !== fd.secondary_metric) {
+    if (fd.metric !== fd.secondary_metric && fd.secondary_metric) {
       colorByCategory = false;
       ext = d3.extent(nodes, d => d.m2 / d.m1);
       colorScale = d3.scale.linear()
diff --git a/superset/viz.py b/superset/viz.py
index d66884a..4ab345c 100644
--- a/superset/viz.py
+++ b/superset/viz.py
@@ -1407,24 +1407,22 @@ class SunburstViz(BaseViz):
         '@<a href="https://bl.ocks.org/kerryrodden/7090426";>bl.ocks.org</a>')
 
     def get_data(self, df):
-
-        # if m1 == m2 duplicate the metric column
-        cols = self.form_data.get('groupby')
-        metric = self.form_data.get('metric')
-        secondary_metric = self.form_data.get('secondary_metric')
-        if metric == secondary_metric:
-            ndf = df
-            ndf.columns = [cols + ['m1', 'm2']]
-        else:
-            cols += [
-                self.form_data['metric'], self.form_data['secondary_metric']]
-            ndf = df[cols]
-        return json.loads(ndf.to_json(orient='values'))  # TODO fix this 
nonsense
+        fd = self.form_data
+        cols = fd.get('groupby')
+        metric = fd.get('metric')
+        secondary_metric = fd.get('secondary_metric')
+        if metric == secondary_metric or secondary_metric is None:
+            df.columns = cols + ['m1']
+            df['m2'] = df['m1']
+        return json.loads(df.to_json(orient='values'))
 
     def query_obj(self):
         qry = super(SunburstViz, self).query_obj()
-        qry['metrics'] = [
-            self.form_data['metric'], self.form_data['secondary_metric']]
+        fd = self.form_data
+        qry['metrics'] = [fd['metric']]
+        secondary_metric = fd.get('secondary_metric')
+        if secondary_metric and secondary_metric != fd['metric']:
+            qry['metrics'].append(secondary_metric)
         return qry
 
 

-- 
To stop receiving notification emails like this one, please contact
maximebeauche...@apache.org.

Reply via email to