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'])
|
@pytest.mark.parametrize('filename', ['template-form-details.odt', 'template-form-details-no-styles.odt'])
|
||||||
def test_export_to_model_form_details_section(pub, filename):
|
def test_export_to_model_form_details_section(pub, filename):
|
||||||
|
BlockDef.wipe()
|
||||||
FormDef.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 = FormDef()
|
||||||
formdef.name = 'foo-export-details'
|
formdef.name = 'foo-export-details'
|
||||||
formdef.fields = [
|
formdef.fields = [
|
||||||
|
@ -3609,6 +3620,7 @@ def test_export_to_model_form_details_section(pub, filename):
|
||||||
PageField(id='13', label='Empty Page', type='page'),
|
PageField(id='13', label='Empty Page', type='page'),
|
||||||
TitleField(id='14', label='Empty Title', type='title'),
|
TitleField(id='14', label='Empty Title', type='title'),
|
||||||
StringField(id='15', label='Empty String', type='string', varname='invisiblestr'),
|
StringField(id='15', label='Empty String', type='string', varname='invisiblestr'),
|
||||||
|
BlockField(id='16', label='Block Field', type='block:foobar'),
|
||||||
]
|
]
|
||||||
formdef.store()
|
formdef.store()
|
||||||
formdef.data_class().wipe()
|
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'),
|
'10': time.strptime('2015-05-12', '%Y-%m-%d'),
|
||||||
'11': 'foo',
|
'11': 'foo',
|
||||||
'12': [['1', '2'], ['3', '4']],
|
'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.just_created()
|
||||||
formdata.store()
|
formdata.store()
|
||||||
|
@ -3663,6 +3681,7 @@ def test_export_to_model_form_details_section(pub, filename):
|
||||||
assert '>2015-05-12<' in new_content
|
assert '>2015-05-12<' in new_content
|
||||||
assert 'Invisible' not in new_content
|
assert 'Invisible' not in new_content
|
||||||
assert new_content.count('/table:table-cell') == 8
|
assert new_content.count('/table:table-cell') == 8
|
||||||
|
assert 'XfooY, Xfoo2Y' in new_content
|
||||||
|
|
||||||
if filename == 'template-form-details-no-styles.odt':
|
if filename == 'template-form-details-no-styles.odt':
|
||||||
new_styles = force_text(
|
new_styles = force_text(
|
||||||
|
|
|
@ -3363,6 +3363,11 @@ class BlockField(WidgetField):
|
||||||
)
|
)
|
||||||
return result
|
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):
|
def get_field_class_by_type(type):
|
||||||
for k in field_classes:
|
for k in field_classes:
|
||||||
|
|
Loading…
Reference in New Issue