Commit d466862a authored by Serge S. Koval's avatar Serge S. Koval

Fixed #260

parent 1ce20ca9
from mongoengine import ValidationError
from flask.ext.admin._compat import itervalues, as_unicode
def make_gridfs_args(value): def make_gridfs_args(value):
args = { args = {
'id': value.grid_id, 'id': value.grid_id,
...@@ -23,3 +27,10 @@ def make_thumb_args(value): ...@@ -23,3 +27,10 @@ def make_thumb_args(value):
return args return args
else: else:
return make_gridfs_args(value) return make_gridfs_args(value)
def format_error(error):
if isinstance(error, ValidationError):
return '. '.join(itervalues(error.to_dict()))
return as_unicode(error)
...@@ -19,6 +19,7 @@ from .filters import FilterConverter, BaseMongoEngineFilter ...@@ -19,6 +19,7 @@ from .filters import FilterConverter, BaseMongoEngineFilter
from .form import get_form, CustomModelConverter from .form import get_form, CustomModelConverter
from .typefmt import DEFAULT_FORMATTERS from .typefmt import DEFAULT_FORMATTERS
from .tools import parse_like_term from .tools import parse_like_term
from .helpers import format_error
SORTABLE_FIELDS = set(( SORTABLE_FIELDS = set((
...@@ -357,7 +358,8 @@ class ModelView(BaseModelView): ...@@ -357,7 +358,8 @@ class ModelView(BaseModelView):
self._on_model_change(form, model, True) self._on_model_change(form, model, True)
model.save() model.save()
except Exception as ex: except Exception as ex:
flash(gettext('Failed to create model. %(error)s', error=str(ex)), flash(gettext('Failed to create model. %(error)s',
error=format_error(ex)),
'error') 'error')
logging.exception('Failed to create model') logging.exception('Failed to create model')
return False return False
...@@ -380,7 +382,8 @@ class ModelView(BaseModelView): ...@@ -380,7 +382,8 @@ class ModelView(BaseModelView):
self._on_model_change(form, model, False) self._on_model_change(form, model, False)
model.save() model.save()
except Exception as ex: except Exception as ex:
flash(gettext('Failed to update model. %(error)s', error=str(ex)), flash(gettext('Failed to update model. %(error)s',
error=format_error(ex)),
'error') 'error')
logging.exception('Failed to update model') logging.exception('Failed to update model')
return False return False
...@@ -401,7 +404,8 @@ class ModelView(BaseModelView): ...@@ -401,7 +404,8 @@ class ModelView(BaseModelView):
model.delete() model.delete()
return True return True
except Exception as ex: except Exception as ex:
flash(gettext('Failed to delete model. %(error)s', error=str(ex)), flash(gettext('Failed to delete model. %(error)s',
error=format_error(ex)),
'error') 'error')
logging.exception('Failed to delete model') logging.exception('Failed to delete model')
return False return False
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment