Просмотр исходного кода

[beeswax] Fix configuration view to use session configuration

Jenny Kim 10 лет назад
Родитель
Сommit
92b5839

+ 4 - 5
apps/beeswax/src/beeswax/templates/configuration.mako

@@ -31,7 +31,7 @@ ${layout.menubar(section='configuration')}
       <p>
         <form class="form-search" method="POST">
           ${ csrf_token(request) | n,unicode }
-          <input type="text" id="filterInput" class="input-xlarge search-query" placeholder="${_('Search for key, value, etc.')}">
+          <input type="text" id="filterInput" class="input-xlarge search-query" placeholder="${_('Search for key or value.')}">
           <a href="#" id="clearFilterBtn" class="btn">${_('Clear')}</a>
         </form>
         <table class="table table-striped table-condensed datatables">
@@ -39,13 +39,12 @@ ${layout.menubar(section='configuration')}
             <tr>
               <th>${_('Key')}</th>
               <th>${_('Value')}</th>
-              <th>${_('Description')}</th>
             </tr>
           </thead>
           <tbody>
-            % for config_value in config_values:
-              <tr class="confRow" data-search="${config_value.key or ""}${config_value.value or ""}${config_value.description or ""}">
-                  <td>${config_value.key or ""}</td><td>${config_value.value or ""}</td><td>${config_value.description or ""}</td>
+            % for key, value in configuration.items():
+              <tr class="confRow" data-search="${key or ""}${value or ""}">
+                  <td>${key or ""}</td><td>${value or ""}</td>
               </tr>
             % endfor
           </tbody>

+ 22 - 7
apps/beeswax/src/beeswax/views.py

@@ -47,7 +47,7 @@ import beeswax.design
 import beeswax.management.commands.beeswax_install_examples
 
 from beeswax import common, data_export, models
-from beeswax.models import SavedQuery, QueryHistory
+from beeswax.models import QueryHistory, SavedQuery, Session
 from beeswax.server import dbms
 from beeswax.server.dbms import expand_exception, get_query_server_config, QueryServerException
 
@@ -139,6 +139,7 @@ def _save_design(user, design, type_, design_obj, explicit_save, name=None, desc
 
   return design
 
+
 def delete_design(request):
   if request.method == 'POST':
     ids = request.POST.getlist('designs_selection')
@@ -348,6 +349,7 @@ def list_query_history(request):
     'filter': filter,
   })
 
+
 def massage_query_history_for_json(app_name, query_history):
   return {
     'query': escape(query_history.query),
@@ -357,6 +359,7 @@ def massage_query_history_for_json(app_name, query_history):
     'resultsUrl': not query_history.is_failure() and reverse(app_name + ':watch_query_history', kwargs={'query_history_id': query_history.id}) or ""
   }
 
+
 def download(request, id, format):
   try:
     query_history = authorized_get_query_history(request, id, must_exist=True)
@@ -550,12 +553,19 @@ def view_results(request, id, first_row=0):
 def configuration(request):
   app_name = get_app_name(request)
   query_server = get_query_server_config(app_name)
-  config_values = dbms.get(request.user, query_server).get_default_configuration(
-                      bool(request.REQUEST.get("include_hadoop", False)))
-  for value in config_values:
-    if 'password' in value.key.lower():
-      value.value = "*" * 10
-  return render("configuration.mako", request, {'config_values': config_values})
+
+  session = Session.objects.get_session(request.user, query_server['server_name'])
+
+  if session:
+    properties = json.loads(session.properties)
+    # Redact passwords
+    for key, value in properties.items():
+      if 'password' in key.lower():
+        properties[key] = '*' * len(value)
+  else:
+    properties = {}
+
+  return render("configuration.mako", request, {'configuration': properties})
 
 
 """
@@ -635,6 +645,7 @@ def massage_columns_for_json(cols):
     })
   return massaged_cols
 
+
 def authorized_get_design(request, design_id, owner_only=False, must_exist=False):
   if design_id is None and not must_exist:
     return None
@@ -654,6 +665,7 @@ def authorized_get_design(request, design_id, owner_only=False, must_exist=False
 
   return design
 
+
 def authorized_get_query_history(request, query_history_id, owner_only=False, must_exist=False):
   if query_history_id is None and not must_exist:
     return None
@@ -981,6 +993,7 @@ def _list_query_history(user, querydict, page_size, prefix=""):
 
   return page, filter_params
 
+
 def _update_query_state(query_history):
   """
   Update the last_state for a QueryHistory object. Returns success as True/False.
@@ -1002,6 +1015,7 @@ def _update_query_state(query_history):
     query_history.save_state(state_enum)
   return True
 
+
 def get_db_choices(request):
   app_name = get_app_name(request)
   query_server = get_query_server_config(app_name)
@@ -1009,6 +1023,7 @@ def get_db_choices(request):
   dbs = db.get_databases()
   return [(db, db) for db in dbs]
 
+
 WHITESPACE = re.compile("\s+", re.MULTILINE)
 def collapse_whitespace(s):
   return WHITESPACE.sub(" ", s).strip()