templatetags: handle lazy values on unaccent filter (#58688)
This commit is contained in:
parent
53108f8459
commit
b78fdaa02c
|
@ -217,6 +217,22 @@ def test_unaccent_templatetag():
|
|||
assert tmpl.render({'foo': 'FOO bar'}) == 'FOO bar'
|
||||
assert tmpl.render({'foo': 'félé'}) == 'fele'
|
||||
|
||||
# lazy mode
|
||||
FormDef.wipe()
|
||||
formdef = FormDef()
|
||||
formdef.name = 'lazy'
|
||||
formdef.fields = [fields.StringField(id='0', label='string', varname='foo')]
|
||||
formdef.store()
|
||||
formdata = formdef.data_class()()
|
||||
formdata.data = {'0': 'félà'}
|
||||
formdata.store()
|
||||
context = CompatibilityNamesDict({'form': LazyFormData(formdata)})
|
||||
tmpl = Template('{{ form_var_foo|unaccent }}')
|
||||
assert tmpl.render(context) == 'fela'
|
||||
formdata.data = {'0': None}
|
||||
formdata.store()
|
||||
assert tmpl.render(context) == ''
|
||||
|
||||
|
||||
def test_template_encoding():
|
||||
# django
|
||||
|
|
|
@ -140,6 +140,7 @@ def urljoin(base, path=None):
|
|||
|
||||
@register.filter
|
||||
def unaccent(value):
|
||||
value = unlazy(value)
|
||||
if not value:
|
||||
return ''
|
||||
return force_text(unicodedata.normalize('NFKD', value).encode('ascii', 'ignore'))
|
||||
|
|
Loading…
Reference in New Issue