Commit ed5943b8 authored by Serge S. Koval's avatar Serge S. Koval Committed by GitHub

Merge pull request #1320 from iurisilvio/fix_named_filters_l10n

Fix url generation with localized named filters.
parents 4348d60b abad6601
...@@ -1117,7 +1117,15 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -1117,7 +1117,15 @@ class BaseModelView(BaseView, ActionsMixin):
Filter instance Filter instance
""" """
if self.named_filter_urls: if self.named_filter_urls:
name = ('%s %s' % (flt.name, as_unicode(flt.operation()))).lower() operation = flt.operation()
try:
# get lazy string original value
operation = operation._args[0]
except AttributeError:
pass
name = ('%s %s' % (flt.name, as_unicode(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
......
...@@ -1834,6 +1834,28 @@ def test_modelview_localization(): ...@@ -1834,6 +1834,28 @@ def test_modelview_localization():
for locale in locales: for locale in locales:
test_locale(locale) test_locale(locale)
def test_modelview_named_filter_localization():
app, db, admin = setup()
app.config['BABEL_DEFAULT_LOCALE'] = 'de'
Babel(app)
Model1, _ = create_models(db)
view = CustomModelView(
Model1, db.session,
named_filter_urls=True,
column_filters=['test1'],
)
filters = view.get_filters()
flt = filters[2]
with app.test_request_context():
flt_name = view.get_filter_arg(2, flt)
eq_('test1_equals', flt_name)
def test_custom_form_base(): def test_custom_form_base():
app, db, admin = setup() app, db, admin = setup()
......
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