misc: override |default_if_none for lazy variables (#77947)
gitea/wcs/pipeline/head This commit looks good Details

This commit is contained in:
Frédéric Péters 2023-05-26 11:04:25 +02:00
parent 922ceba4f3
commit 63864f16a1
2 changed files with 11 additions and 0 deletions

View File

@ -2033,6 +2033,9 @@ def test_lazy_variables_missing(pub, variable_test_data):
with pytest.raises(KeyError):
assert context['form_var_foo_foo_xxx'] == 'bar'
tmpl = Template('{{form_var_foo_foo_baz_baz|default_if_none:"XXX"}}')
assert tmpl.render(context) == 'XXX'
def test_lazy_variables_length(pub, variable_test_data):
formdef = FormDef.select()[0]

View File

@ -1104,3 +1104,11 @@ def translate(string, context=None):
if string is None:
return None
return get_publisher().translate(string, context=context, register=True)
@register.filter(is_safe=False)
def default_if_none(value, arg):
value = unlazy(value)
if value is None:
return arg
return value