misc: add basic odt support to block fields (#50030)
This commit is contained in:
parent
17b135023d
commit
3fff9b48a5
|
@ -3590,7 +3590,18 @@ def test_export_to_model_django_template(pub):
|
|||
|
||||
@pytest.mark.parametrize('filename', ['template-form-details.odt', 'template-form-details-no-styles.odt'])
|
||||
def test_export_to_model_form_details_section(pub, filename):
|
||||
BlockDef.wipe()
|
||||
FormDef.wipe()
|
||||
|
||||
block = BlockDef()
|
||||
block.name = 'foobar'
|
||||
block.digest_template = 'X{{foobar_var_foo}}Y'
|
||||
block.fields = [
|
||||
StringField(id='123', required=True, label='Test', type='string', varname='foo'),
|
||||
StringField(id='234', required=True, label='Test2', type='string', varname='bar'),
|
||||
]
|
||||
block.store()
|
||||
|
||||
formdef = FormDef()
|
||||
formdef.name = 'foo-export-details'
|
||||
formdef.fields = [
|
||||
|
@ -3609,6 +3620,7 @@ def test_export_to_model_form_details_section(pub, filename):
|
|||
PageField(id='13', label='Empty Page', type='page'),
|
||||
TitleField(id='14', label='Empty Title', type='title'),
|
||||
StringField(id='15', label='Empty String', type='string', varname='invisiblestr'),
|
||||
BlockField(id='16', label='Block Field', type='block:foobar'),
|
||||
]
|
||||
formdef.store()
|
||||
formdef.data_class().wipe()
|
||||
|
@ -3624,6 +3636,12 @@ def test_export_to_model_form_details_section(pub, filename):
|
|||
'10': time.strptime('2015-05-12', '%Y-%m-%d'),
|
||||
'11': 'foo',
|
||||
'12': [['1', '2'], ['3', '4']],
|
||||
# value from test_block_digest in tests/form_pages/test_block.py
|
||||
'16': {
|
||||
'data': [{'123': 'foo', '234': 'bar'}, {'123': 'foo2', '234': 'bar2'}],
|
||||
'schema': {'123': 'string', '234': 'string'},
|
||||
},
|
||||
'16_display': 'XfooY, Xfoo2Y',
|
||||
}
|
||||
formdata.just_created()
|
||||
formdata.store()
|
||||
|
@ -3663,6 +3681,7 @@ def test_export_to_model_form_details_section(pub, filename):
|
|||
assert '>2015-05-12<' in new_content
|
||||
assert 'Invisible' not in new_content
|
||||
assert new_content.count('/table:table-cell') == 8
|
||||
assert 'XfooY, Xfoo2Y' in new_content
|
||||
|
||||
if filename == 'template-form-details-no-styles.odt':
|
||||
new_styles = force_text(
|
||||
|
|
|
@ -3363,6 +3363,11 @@ class BlockField(WidgetField):
|
|||
)
|
||||
return result
|
||||
|
||||
def get_opendocument_node_value(self, value, formdata=None, **kwargs):
|
||||
node = ET.Element('{%s}span' % OD_NS['text'])
|
||||
node.text = od_clean_text(force_text(value))
|
||||
return node
|
||||
|
||||
|
||||
def get_field_class_by_type(type):
|
||||
for k in field_classes:
|
||||
|
|
Loading…
Reference in New Issue