Browse Source

HUE-3228 [dashboard] Add timeline with timestamp type

Romain Rigaux 8 years ago
parent
commit
9c30829

+ 7 - 2
apps/impala/src/impala/dashboard_api.py

@@ -17,6 +17,7 @@
 
 import logging
 import json
+import numbers
 import time
 
 from itertools import groupby
@@ -27,6 +28,7 @@ from notebook.models import make_notebook
 from notebook.connectors.base import get_api
 
 from search.models import Collection2
+import re
 
 
 LOG = logging.getLogger(__name__)
@@ -237,6 +239,9 @@ class SQLApi():
 #
 #       raise QueryServerTimeoutException(message=msg)
 
+      if not isinstance(min_value, numbers.Number):
+        min_value = min_value.replace(' ', 'T') + 'Z'
+        max_value = max_value.replace(' ', 'T') + 'Z'
 
       return {
         'stats': {
@@ -343,10 +348,10 @@ class SQLApi():
       field_name = '`%(field)s_range`' % facet
       order_by = '`%(field)s_range` ASC' % facet
       if facet['properties']['isDate']:
-        pass
+        slot = re.sub('^\+\d+', '', facet['properties']['gap']).rstrip('S')
+        select = "trunc(`%(field)s`, '%(slot)s') AS %(field_name)s" % {'field': facet['field'], 'slot': slot, 'field_name': field_name}
       else:
         slot = max((facet['properties']['end'] - facet['properties']['start']) / facet['properties']['limit'], 1)
-
         select = 'cast(`%(field)s` / %(slot)s AS int) * %(slot)s AS %(field_name)s' % {'field': facet['field'], 'slot': slot, 'field_name': field_name}
     else:
       field_name = '`%(field)s`' % facet

+ 1 - 1
apps/search/src/search/static/search/js/search.ko.js

@@ -1457,7 +1457,7 @@ var QueryResult = function (vm, initial) { // Similar to to Notebook Snippet
 };
 
 
-var DATE_TYPES = ['date', 'tdate'];
+var DATE_TYPES = ['date', 'tdate', 'timestamp'];
 var NUMBER_TYPES = ['int', 'tint', 'long', 'tlong', 'float', 'tfloat', 'double', 'tdouble', 'currency'];
 var FLOAT_TYPES = ['float', 'tfloat', 'double', 'tdouble'];
 var GEO_TYPES = ['SpatialRecursivePrefixTreeFieldType'];

+ 1 - 1
desktop/core/src/desktop/views.py

@@ -344,7 +344,7 @@ def unsupported(request):
   return render('unsupported.mako', request, None)
 
 def index(request):
-  if request.user.is_superuser and request.COOKIES.get('hueLandingPage') != 'home':
+  if request.user.is_superuser and request.COOKIES.get('hueLandingPage') != 'home' and not IS_HUE_4.get():
     return redirect(reverse('about:index'))
   else:
     if IS_HUE_4.get():

+ 1 - 1
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -98,7 +98,7 @@ def top_tables(request):
       'patternCount': table['patternCount'],
       'total': table['total'],
       'is_fact': table['type'] != 'Dimension'
-      } for table in data['results']
+    } for table in data['results']
   ]
 
   if NAVIGATOR.APPLY_SENTRY_PERMISSIONS.get():