0001-fields-fix-BlockField.get_view_value-on-invalid-valu.patch
tests/form_pages/test_block.py | ||
---|---|---|
2092 | 2092 |
resp = app.get(formdef.get_url()) |
2093 | 2093 |
assert resp.form['f1$element0$f123'].value == 'plop' |
2094 | 2094 |
assert resp.form['f1$element0$f234'].value == 'Bar' |
2095 | ||
2096 | ||
2097 |
def test_formdata_page_with_block_bad_value(pub): |
|
2098 |
BlockDef.wipe() |
|
2099 |
user = create_user(pub) |
|
2100 | ||
2101 |
block = BlockDef() |
|
2102 |
block.name = 'foobar' |
|
2103 |
block.fields = [ |
|
2104 |
fields.StringField(id='123', required=True, label='Test', type='string', varname='test'), |
|
2105 |
] |
|
2106 |
block.store() |
|
2107 | ||
2108 |
formdef = FormDef() |
|
2109 |
formdef.name = 'test' |
|
2110 |
formdef.fields = [ |
|
2111 |
fields.BlockField(id='1', label='test', type='block:foobar', varname='foobar'), |
|
2112 |
] |
|
2113 |
formdef.store() |
|
2114 | ||
2115 |
formdef.data_class().wipe() |
|
2116 |
formdata = formdef.data_class()() |
|
2117 |
formdata.data = { |
|
2118 |
'1': None, |
|
2119 |
'1_display': 'hello', |
|
2120 |
} |
|
2121 |
formdata.just_created() |
|
2122 |
formdata.user_id = user.id |
|
2123 |
formdata.store() |
|
2124 | ||
2125 |
app = get_app(pub) |
|
2126 |
login(app, username='foo', password='foo') |
|
2127 |
resp = app.get(formdata.get_url()) |
|
2128 |
assert resp.pyquery('div.field-type-block div.value').text() == '' |
wcs/fields.py | ||
---|---|---|
3928 | 3928 |
# when called from get_rst_view_value() |
3929 | 3929 |
return str(value or '') |
3930 | 3930 |
value = kwargs['value_id'] |
3931 |
if value is None: |
|
3932 |
return '' |
|
3931 | 3933 |
r = TemplateIO(html=True) |
3932 | 3934 |
for i, row_value in enumerate(value['data']): |
3933 | 3935 |
context = self.block.get_substitution_counter_variables(i) |
3934 |
- |