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

Merge pull request #1151 from torotil/fix_988_again

Fix column filters with translateable column labels.
parents aece1c22 aa98e681
...@@ -1534,7 +1534,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -1534,7 +1534,7 @@ class BaseModelView(BaseView, ActionsMixin):
value = request.args[n] value = request.args[n]
if flt.validate(value): if flt.validate(value):
filters.append((pos, (idx, flt.name, value))) filters.append((pos, (idx, as_unicode(flt.name), value)))
else: else:
flash(gettext('Invalid Filter Value: %(value)s', value=value)) flash(gettext('Invalid Filter Value: %(value)s', value=value))
......
...@@ -6,6 +6,7 @@ from speaklater import make_lazy_string ...@@ -6,6 +6,7 @@ from speaklater import make_lazy_string
from . import setup from . import setup
from .test_basic import CustomModelView, create_models from .test_basic import CustomModelView, create_models
class Translator: class Translator:
translate = False translate = False
...@@ -15,6 +16,7 @@ class Translator: ...@@ -15,6 +16,7 @@ class Translator:
else: else:
return string return string
def test_column_label_translation(): def test_column_label_translation():
app, db, admin = setup() app, db, admin = setup()
...@@ -27,8 +29,14 @@ def test_column_label_translation(): ...@@ -27,8 +29,14 @@ def test_column_label_translation():
column_list=['test1', 'test3'], column_list=['test1', 'test3'],
column_labels=dict(test1=label), column_labels=dict(test1=label),
column_filters=('test1',)) column_filters=('test1',))
admin.add_view(view)
translated.translate = True translated.translate = True
non_lazy_groups = view._get_filter_groups() non_lazy_groups = view._get_filter_groups()
json.dumps(non_lazy_groups) # Filter dict is JSON serializable. json.dumps(non_lazy_groups) # Filter dict is JSON serializable.
ok_(translated('Column1') in non_lazy_groups) # Label was translated. ok_(translated('Column1') in non_lazy_groups) # Label was translated.
client = app.test_client()
# Render index with active filter.
rv = client.get('/admin/model1/?flt1_0=test')
eq_(rv.status_code, 200)
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