templatetags: unlazy value in phonenumber_fr (#49014)

This commit is contained in:
Thomas NOËL 2020-12-01 15:49:22 +01:00
parent 31f3d6035a
commit fcd5d86ee5
2 changed files with 15 additions and 0 deletions

View File

@ -701,6 +701,19 @@ def test_phonenumber_fr():
t = Template('{{ number|decimal|phonenumber_fr }}')
assert t.render({'number': '1,33'}) == '1.33'
# lazy mode
FormDef.wipe()
formdef = FormDef()
formdef.name = 'lazy'
formdef.fields = [fields.StringField(id='0', label='string', varname='phone')]
formdef.store()
formdata = formdef.data_class()()
formdata.data = {'0': '0143350135'}
formdata.store()
context = CompatibilityNamesDict({'form': LazyFormData(formdata)})
tmpl = Template('{{ form_var_phone|phonenumber_fr:"-" }}')
assert tmpl.render(context) == '01-43-35-01-35'
@pytest.mark.skipif('langdetect is None')
def test_language_detect():

View File

@ -685,6 +685,8 @@ def language_detect(value):
def phonenumber_fr(value, separator=' '):
DROMS = ('262', '508', '590', '594', '596')
if hasattr(value, 'get_value'):
value = value.get_value() # unlazy
if not value or not isinstance(value, six.string_types):
return value
number = value.strip()