Commit 7c0f6d51 authored by Paul Brown's avatar Paul Brown

add basic tests for modelview localization, fix issue #692

parent b59dcbdf
...@@ -594,7 +594,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -594,7 +594,7 @@ class BaseModelView(BaseView, ActionsMixin):
self._filter_groups[flt.name].append({ self._filter_groups[flt.name].append({
'index': i, 'index': i,
'arg': self.get_filter_arg(i, flt), 'arg': self.get_filter_arg(i, flt),
'operation': flt.operation(), 'operation': unicode(flt.operation()),
'options': flt.get_options(self) or None, 'options': flt.get_options(self) or None,
'type': flt.data_type 'type': flt.data_type
}) })
...@@ -809,7 +809,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -809,7 +809,7 @@ class BaseModelView(BaseView, ActionsMixin):
Filter instance Filter instance
""" """
if self.named_filter_urls: if self.named_filter_urls:
name = ('%s %s' % (flt.name, flt.operation())).lower() name = ('%s %s' % (flt.name, unicode(flt.operation()))).lower()
name = filter_char_re.sub('', name) name = filter_char_re.sub('', name)
name = filter_compact_re.sub('_', name) name = filter_compact_re.sub('_', name)
return name return name
......
...@@ -6,6 +6,7 @@ from flask.ext.admin import form ...@@ -6,6 +6,7 @@ from flask.ext.admin import form
from flask.ext.admin._compat import as_unicode from flask.ext.admin._compat import as_unicode
from flask.ext.admin._compat import iteritems from flask.ext.admin._compat import iteritems
from flask.ext.admin.contrib.sqla import ModelView from flask.ext.admin.contrib.sqla import ModelView
from flask.ext.babelex import Babel
from . import setup from . import setup
...@@ -823,8 +824,34 @@ def test_extra_field_order(): ...@@ -823,8 +824,34 @@ def test_extra_field_order():
pos2 = data.find('Test1') pos2 = data.find('Test1')
ok_(pos2 > pos1) ok_(pos2 > pos1)
def test_modelview_localization():
# TODO: Babel tests def test_locale(locale):
app, db, admin = setup()
app.config['BABEL_DEFAULT_LOCALE'] = locale
babel = Babel(app)
Model1, _ = create_models(db)
view = CustomModelView(
Model1, db.session,
column_filters=['test1', 'bool_field', 'date_field', 'datetime_field', 'time_field']
)
admin.add_view(view)
client = app.test_client()
rv = client.get('/admin/model1/')
eq_(rv.status_code, 200)
rv = client.get('/admin/model1/new/')
eq_(rv.status_code, 200)
locales = ['en', 'cs', 'de', 'es', 'fa', 'fr', 'pt', 'ru', 'zh_CN', 'zh_TW']
for locale in locales:
test_locale(locale)
def test_custom_form_base(): def test_custom_form_base():
app, db, admin = setup() app, db, admin = setup()
......
...@@ -55,7 +55,8 @@ setup( ...@@ -55,7 +55,8 @@ setup(
'wtf-peewee', 'wtf-peewee',
'sqlalchemy', 'sqlalchemy',
'flask-mongoengine', 'flask-mongoengine',
'flask-sqlalchemy' 'flask-sqlalchemy',
'flask-babelex'
], ],
classifiers=[ classifiers=[
'Development Status :: 4 - Beta', 'Development Status :: 4 - Beta',
......
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