1746 |
1746 |
assert tmpl.render(context) == 'xxx'
|
1747 |
1747 |
|
1748 |
1748 |
|
|
1749 |
def test_lazy_structured_items(pub, variable_test_data):
|
|
1750 |
ds = {
|
|
1751 |
'type': 'formula',
|
|
1752 |
'value': repr([
|
|
1753 |
{'id': '1', 'text': 'un', 'more': 'foo', 'url': 'xxx'},
|
|
1754 |
{'id': '2', 'text': 'deux', 'more': 'bar', 'url': 'yyy'}]),
|
|
1755 |
}
|
|
1756 |
|
|
1757 |
formdef = FormDef()
|
|
1758 |
formdef.name = 'foobar'
|
|
1759 |
formdef.url_name = 'foobar'
|
|
1760 |
formdef.fields = [
|
|
1761 |
fields.ItemsField(id='1', label='items', data_source=ds, varname='plop'),
|
|
1762 |
]
|
|
1763 |
formdef.store()
|
|
1764 |
|
|
1765 |
formdata = formdef.data_class()()
|
|
1766 |
formdata.data = {'1': ['1', '2']}
|
|
1767 |
formdata.data['1_display'] = formdef.fields[0].store_display_value(formdata.data, '1')
|
|
1768 |
formdata.data['1_structured'] = formdef.fields[0].store_structured_value(formdata.data, '1')
|
|
1769 |
formdata.store()
|
|
1770 |
|
|
1771 |
pub.substitutions.reset()
|
|
1772 |
pub.substitutions.feed(formdata)
|
|
1773 |
for mode in (None, 'lazy'):
|
|
1774 |
context = pub.substitutions.get_context_variables(mode=mode)
|
|
1775 |
tmpl = Template('{{ form_var_plop_0_more }}')
|
|
1776 |
assert tmpl.render(context) == 'foo'
|
|
1777 |
tmpl = Template('{{ form_var_plop_0_url }}')
|
|
1778 |
assert tmpl.render(context) == 'xxx'
|
|
1779 |
tmpl = Template('{{ form_var_plop_1_more }}')
|
|
1780 |
assert tmpl.render(context) == 'bar'
|
|
1781 |
tmpl = Template('{{ form_var_plop_1_url }}')
|
|
1782 |
assert tmpl.render(context) == 'yyy'
|
|
1783 |
|
|
1784 |
assert 'form_var_plop_0_url' in pub.substitutions.get_context_variables(mode='lazy').get_flat_keys()
|
|
1785 |
assert 'form_var_plop_1_more' in pub.substitutions.get_context_variables(mode='lazy').get_flat_keys()
|
|
1786 |
|
|
1787 |
|
1749 |
1788 |
def test_formdata_user_field(pub, variable_test_data):
|
1750 |
1789 |
local_user = variable_test_data._formdata.user
|
1751 |
1790 |
|