0001-misc-add-as_template-filter-49467.patch
tests/form_pages/test_live.py | ||
---|---|---|
1744 | 1744 | |
1745 | 1745 |
live_resp = app.post('/foo/live', params=resp.form.submit_fields()) |
1746 | 1746 |
assert live_resp.json == {'result': {'1': {'visible': True}, '2': {'visible': True}}} |
1747 | ||
1748 | ||
1749 |
def test_comment_from_card_field(pub): |
|
1750 |
create_user(pub) |
|
1751 | ||
1752 |
CardDef.wipe() |
|
1753 |
carddef = CardDef() |
|
1754 |
carddef.name = 'Template' |
|
1755 |
carddef.digest_templates = {'default': '{{ form_var_template }}'} |
|
1756 |
carddef.fields = [ |
|
1757 |
fields.StringField(id='0', label='string', varname='template'), |
|
1758 |
] |
|
1759 |
carddef.store() |
|
1760 |
carddef.data_class().wipe() |
|
1761 |
for i, value in enumerate(['foo', 'bar']): |
|
1762 |
carddata = carddef.data_class()() |
|
1763 |
carddata.data = { |
|
1764 |
'0': "%s {{ form_var_foo }}" % value, |
|
1765 |
} |
|
1766 |
carddata.just_created() |
|
1767 |
carddata.store() |
|
1768 | ||
1769 |
ds = {'type': 'carddef:%s' % carddef.url_name} |
|
1770 |
FormDef.wipe() |
|
1771 |
formdef = FormDef() |
|
1772 |
formdef.name = 'test' |
|
1773 |
formdef.fields = [ |
|
1774 |
fields.StringField(id='0', label='string', varname='foo'), |
|
1775 |
fields.ItemField(id='1', label='card', type='item', varname='card', data_source=ds), |
|
1776 |
fields.CommentField( |
|
1777 |
id='3', |
|
1778 |
label='X{{ form_var_card_live_var_template }}Y{{ form_var_card_live_var_template|as_template }}Z', |
|
1779 |
type='comment', |
|
1780 |
), |
|
1781 |
] |
|
1782 |
formdef.store() |
|
1783 |
formdef.data_class().wipe() |
|
1784 | ||
1785 |
app = get_app(pub) |
|
1786 |
resp = app.get('/test/') |
|
1787 |
resp.form['f0'] = 'plop' |
|
1788 |
resp.form['f1'] = '1' |
|
1789 |
live_resp = app.post('/test/live', params=resp.form.submit_fields()) |
|
1790 |
assert live_resp.json['result']['3']['content'] == '<p>Xfoo {{ form_var_foo }}Yfoo plopZ</p>' |
|
1791 |
resp.form['f1'] = '2' |
|
1792 |
live_resp = app.post('/test/live', params=resp.form.submit_fields()) |
|
1793 |
assert live_resp.json['result']['3']['content'] == '<p>Xbar {{ form_var_foo }}Ybar plopZ</p>' |
tests/test_templates.py | ||
---|---|---|
1427 | 1427 |
assert pub.has_cached_complex_data(img) |
1428 | 1428 |
value = pub.get_cached_complex_data(img) |
1429 | 1429 |
assert value is False |
1430 | ||
1431 | ||
1432 |
def test_as_template(pub): |
|
1433 |
FormDef.wipe() |
|
1434 |
formdef = FormDef() |
|
1435 |
formdef.name = 'foobar' |
|
1436 |
formdef.fields = [fields.StringField(id='1', label='Test', type='string', varname='foo')] |
|
1437 |
formdef.store() |
|
1438 | ||
1439 |
formdata = formdef.data_class()() |
|
1440 |
formdata.data = {'1': 'Foo Bar'} |
|
1441 |
formdata.store() |
|
1442 |
pub.substitutions.feed(formdata) |
|
1443 |
context = {'template': 'Hello {{ form_var_foo }}'} |
|
1444 |
assert Template('{{ template }}').render(context) == 'Hello {{ form_var_foo }}' |
|
1445 |
assert Template('{{ template|as_template }}').render(context) == 'Hello Foo Bar' |
wcs/qommon/templatetags/qommon.py | ||
---|---|---|
964 | 964 |
if context.get('allow_complex'): |
965 | 965 |
return get_publisher().cache_complex_data(value, '<block value>') |
966 | 966 |
return value # mostly non-useful |
967 | ||
968 | ||
969 |
@register.filter |
|
970 |
def as_template(value): |
|
971 |
from wcs.workflows import WorkflowStatusItem |
|
972 | ||
973 |
return WorkflowStatusItem.compute(unlazy(value)) |
|
967 |
- |