ezt: handle NoneFieldVar values (#78017) #353

Merged
fpeters merged 1 commits from wip/78017-handle-NoneFieldVar-in-ezt-templates into main 2023-05-30 18:22:00 +02:00
2 changed files with 9 additions and 0 deletions

View File

@ -699,6 +699,7 @@ def variable_test_data(pub):
fields.StringField(id='12', label='float1', varname='value'),
fields.PasswordField(id='13', label='pwd', varname='pwd'),
fields.EmailField(id='14', label='email', varname='email'),
fields.ItemField(id='15', label='item', items=['aa', 'bb', 'cc'], varname='itemfield'),
tnoel marked this conversation as resolved Outdated

ItemField, non ? mais a priori ça marche aussi avec EmailField :)

ItemField, non ? mais a priori ça marche aussi avec EmailField :)
Outdated
Review

La fatigue. En fait oui ça marche pour n'importe quel field qui est vide (None). Mais je vais corriger ça...

La fatigue. En fait oui ça marche pour n'importe quel field qui est vide (None). Mais je vais corriger ça...
]
formdef.workflow_roles = {'_receiver': role.id}
formdef.geolocations = {'base': 'Base'}
@ -2621,6 +2622,9 @@ def test_lazy_ezt_templates(pub, variable_test_data):
tmpl = Template('[form_user_name_identifier_0]')
assert tmpl.render(context) == pub.user_class.select()[0].name_identifiers[0]
tmpl = Template('[form_var_itemfield]')
assert tmpl.render(context) == ''
def test_lazy_formdata_fields(pub):
formdef = FormDef()

View File

@ -679,6 +679,11 @@ def _get_value(value_ref, ctx):
return str(ob)
if ob is None:
return ''
# specific wcs None lazy value
from ..variables import NoneFieldVar
if isinstance(ob, NoneFieldVar):
return ''
# string or a sequence
return ob