Forráskód Böngészése

HUE-1754 [dbquery] provide an appropriate view when no databases are configured

Move rdbms navbar to common.mako.
Make ensure_configuration decorator simpler.
Abraham Elmahrek 12 éve
szülő
commit
c90388bbb2

+ 39 - 0
apps/rdbms/src/rdbms/templates/common.mako

@@ -0,0 +1,39 @@
+## Licensed to Cloudera, Inc. under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  Cloudera, Inc. licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License.  You may obtain a copy of the License at
+##
+##     http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+<%! from django.utils.translation import ugettext as _ %>
+
+<%def name="navbar()">
+  <div class="navbar navbar-inverse navbar-fixed-top">
+    <div class="navbar-inner">
+      <div class="container-fluid">
+        <div class="nav-collapse">
+          <ul class="nav">
+            <li class="currentApp">
+              <a href="/rdbms">
+                <img src="/rdbms/static/art/icon_rdbms_24.png" />
+                ${ _('DB Query') }
+              </a>
+            </li>
+            <li class="active"><a href="${ url('rdbms:execute_query') }">${_('Query Editor')}</a></li>
+            <li><a href="${ url('rdbms:my_queries') }">${_('My Queries')}</a></li>
+            <li><a href="${ url('rdbms:list_designs') }">${_('Saved Queries')}</a></li>
+            <li><a href="${ url('rdbms:list_query_history') }">${_('History')}</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+</%def>

+ 3 - 20
apps/rdbms/src/rdbms/templates/error.mako

@@ -18,28 +18,11 @@
   from django.utils.translation import ugettext as _
 %>
 
+<%namespace name="common" file="common.mako" />
+
 ${ commonheader(_('Query'), app_name, user) | n,unicode }
 
-<div class="navbar navbar-inverse navbar-fixed-top">
-  <div class="navbar-inner">
-    <div class="container-fluid">
-      <div class="nav-collapse">
-        <ul class="nav">
-          <li class="currentApp">
-            <a href="/rdbms">
-              <img src="/rdbms/static/art/icon_rdbms_24.png" />
-              ${ _('DB Query') }
-            </a>
-          </li>
-          <li class="active"><a href="${ url('rdbms:execute_query') }">${_('Query Editor')}</a></li>
-          <li><a href="${ url('rdbms:my_queries') }">${_('My Queries')}</a></li>
-          <li><a href="${ url('rdbms:list_designs') }">${_('Saved Queries')}</a></li>
-          <li><a href="${ url('rdbms:list_query_history') }">${_('History')}</a></li>
-        </ul>
-      </div>
-    </div>
-  </div>
-</div>
+<%common:navbar></%common:navbar>
 
 <div class="container-fluid">
   <div class="card">

+ 3 - 20
apps/rdbms/src/rdbms/templates/execute.mako

@@ -18,28 +18,11 @@
   from django.utils.translation import ugettext as _
 %>
 
+<%namespace name="common" file="common.mako" />
+
 ${ commonheader(_('Query'), app_name, user) | n,unicode }
 
-<div class="navbar navbar-inverse navbar-fixed-top">
-  <div class="navbar-inner">
-    <div class="container-fluid">
-      <div class="nav-collapse">
-        <ul class="nav">
-          <li class="currentApp">
-            <a href="/rdbms">
-              <img src="/rdbms/static/art/icon_rdbms_24.png" />
-              ${ _('DB Query') }
-            </a>
-          </li>
-          <li class="active"><a href="${ url('rdbms:execute_query') }">${_('Query Editor')}</a></li>
-          <li><a href="${ url('rdbms:my_queries') }">${_('My Queries')}</a></li>
-          <li><a href="${ url('rdbms:list_designs') }">${_('Saved Queries')}</a></li>
-          <li><a href="${ url('rdbms:list_query_history') }">${_('History')}</a></li>
-        </ul>
-      </div>
-    </div>
-  </div>
-</div>
+<%common:navbar></%common:navbar>
 
 <div class="container-fluid">
   <div class="row-fluid">

+ 14 - 13
apps/rdbms/src/rdbms/views.py

@@ -35,17 +35,6 @@ from rdbms.design import SQLdesign
 LOG = logging.getLogger(__name__)
 
 
-def ensure_configuration(error_view_func):
-  def _temporary_decorator(view_func):
-    def _decorator(*args, **kwargs):
-      if len(conf.RDBMS.get()) > 0:
-        return view_func(*args, **kwargs)
-      else:
-        return error_view_func(*args, **kwargs)
-    return wraps(view_func)(_decorator)
-  return _temporary_decorator
-
-
 def index(request):
   return execute_query(request)
 
@@ -54,10 +43,22 @@ def configuration_error(request, *args, **kwargs):
   return render('error.mako', request, {})
 
 
+"""
+Decorators
+"""
+def ensure_configuration(view_func):
+  def _decorator(*args, **kwargs):
+    if conf.RDBMS.get():
+      return view_func(*args, **kwargs)
+    else:
+      return configuration_error(*args, **kwargs)
+  return wraps(view_func)(_decorator)
+
+
 """
 Queries Views
 """
-@ensure_configuration(error_view_func=configuration_error)
+@ensure_configuration
 def execute_query(request, design_id=None):
   """
   View function for executing an arbitrary synchronously query.
@@ -75,7 +76,7 @@ def execute_query(request, design_id=None):
   })
 
 
-@ensure_configuration(error_view_func=configuration_error)
+@ensure_configuration
 def save_design(request, save_form, query_form, type_, design, explicit_save=False):
   """
   save_design(request, save_form, query_form, type_, design, explicit_save) -> SavedQuery