Sfoglia il codice sorgente

HUE-2173 [search] Nested tree widget with functions

Romain Rigaux 9 anni fa
parent
commit
627d4966d6

+ 7 - 4
apps/search/src/search/models.py

@@ -831,7 +831,7 @@ def augment_solr_response(response, collection, query):
               extraSeries.append({'counts': _c, 'label': name})
             counts = []
         elif collection_facet['properties'].get('isOldPivot'):
-          facet_fields = [collection_facet['field']] + [f['aggregate'] == 'count' for f in collection_facet['properties'].get('facets', [])]
+          facet_fields = [collection_facet['field']] + [f['field'] for f in collection_facet['properties'].get('facets', []) if f['aggregate'] == 'count']
           count = response['facets'][name]
           _convert_nested_to_augmented_pivot_nd(facet_fields, facet['id'], count, selected_values)
           dimension = len(facet_fields)
@@ -1009,7 +1009,6 @@ def _augment_pivot_nd(facet_id, counts, selected_values, fields='', values=''):
 
 
 def _convert_nested_to_augmented_pivot_nd(facet_fields, facet_id, counts, selected_values, fields='', values=''):
-  print facet_fields
   for c in counts['buckets']:
     c['field'] = facet_fields[0]
     fq_fields = (fields if fields else []) + [c['field']]
@@ -1017,8 +1016,12 @@ def _convert_nested_to_augmented_pivot_nd(facet_fields, facet_id, counts, select
     c['value'] = c.pop('val')
 
     if 'd2' in c:
-      _convert_nested_to_augmented_pivot_nd(facet_fields[1:], facet_id, c['d2'], selected_values, fq_fields, fq_values)
-      c['pivot'] = c.pop('d2')['buckets']
+      next_dimension = facet_fields[1:]
+      if next_dimension:
+        _convert_nested_to_augmented_pivot_nd(next_dimension, facet_id, c['d2'], selected_values, fq_fields, fq_values)
+        c['pivot'] = c.pop('d2')['buckets']
+      else:
+        c['count'] = c.pop('d2')
 
     fq_filter = selected_values.get(facet_id, [])
     _selected_values = [f['value'] for f in fq_filter]

+ 1 - 1
apps/search/src/search/templates/common_search.mako

@@ -253,7 +253,7 @@ from django.utils.translation import ugettext as _
                        <i class="hcha hcha-line-chart"></i>
          </a>
     </div>
-    <div data-bind="visible: $root.isLatest(), css: { 'draggable-widget': true, 'disabled': false },
+    <div data-bind="visible: ! $root.isLatest(), css: { 'draggable-widget': true, 'disabled': false },
                     draggable: {data: draggableTree(), isEnabled: true,
                     options: {'start': function(event, ui){lastWindowScrollPosition = $(window).scrollTop();$('.card-body').slideUp('fast');},
                               'stop': function(event, ui){$('.card-body').slideDown('fast', function(){$(window).scrollTop(lastWindowScrollPosition)});}}}"

+ 3 - 2
apps/search/src/search/views.py

@@ -542,7 +542,7 @@ def _create_facet(collection, user, facet_id, facet_label, facet_field, widget_t
   if widget_type in ('tree-widget', 'heatmap-widget', 'map-widget'):
     facet_type = 'pivot'
   elif widget_type == 'hit-widget':
-    facet_type = 'function'    
+    facet_type = 'function'
   elif widget_type == 'gradient-map-widget':
     facet_type = 'nested'
     properties['facets'] = []
@@ -571,7 +571,8 @@ def _create_facet(collection, user, facet_id, facet_label, facet_field, widget_t
         properties['timelineChartType'] = 'bar'
       elif widget_type == 'tree2-widget':
         properties['scope'] = 'tree'
-        properties['isOldPivot'] = True 
+        properties['limit'] = 5
+        properties['isOldPivot'] = True
       else:
         properties['scope'] = 'stack'
         properties['timelineChartType'] = 'bar'