Pārlūkot izejas kodu

HUE-3741 [metastore] Display field validation errors on create table wizard

Jenny Kim 9 gadi atpakaļ
vecāks
revīzija
1cff7c0

+ 0 - 16
apps/beeswax/src/beeswax/create_table.py

@@ -81,9 +81,6 @@ def create_table(request, database='default'):
         proposed_query = proposed_query.decode('utf-8')
         table_name = form.table.cleaned_data['name']
         return _submit_create_and_load(request, proposed_query, table_name, None, False, database=database)
-      else:
-        all_errors = '\n'.join(_collect_multiform_errors(form))
-        raise PopupException(_("Failed to create table due to validation errors."), detail=all_errors)
   else:
     form.bind()
 
@@ -98,19 +95,6 @@ def create_table(request, database='default'):
   })
 
 
-def _collect_multiform_errors(multiform):
-  all_errors = []
-  for name, subform in multiform.get_subforms():
-    if isinstance(subform.errors, ErrorDict):
-      all_errors.extend(['%(field)s: %(msg)s' % {'field': k, 'msg': v[0]} for k, v in subform.errors.items()])
-    elif isinstance(subform.errors, list):
-      for error in subform.errors:
-        all_errors.extend(['%(field)s: %(msg)s' % {'field': k, 'msg': v[0]} for k, v in error.items()])
-    else:
-      all_errors.append(str(subform.errors))
-  return all_errors
-
-
 IMPORT_PEEK_SIZE = 5 * 1024**2
 IMPORT_PEEK_NLINES = 10
 DELIMITERS = [ hive_val for hive_val, desc, ascii in TERMINATORS ]

+ 3 - 0
apps/beeswax/src/beeswax/templates/create_table_manually.mako

@@ -399,6 +399,9 @@ ${ assist.assistPanel() }
             <label class="control-label">${_('Column name')}</label>
             <div class="controls">
                 <input class="column input input-large" name="${form["column_name"].html_name | n}" value="${form["column_name"].data or ''}" placeholder="${_('Column Name')}"/>
+                % if form["column_name"].errors:
+                  <span class="help-inline error-inline">${ form["column_name"].errors.as_text() }</span>
+                % endif
                 <span  class="help-inline error-inline hide">${_('This field is required. Spaces are not allowed.')}</span>
                 <span  class="help-inline error-inline error-inline-bis hide">${_('There is another field with the same name.')}</span>
                 <span class="help-block muted">