From 7f63453859c1d58871b58cc17d407a6563175b00 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 14 Oct 2015 00:18:44 +0200 Subject: [PATCH 3/4] wf/export_to_model: add opendocument support (#4292) --- tests/template-out.odt | Bin 0 -> 31138 bytes tests/template.odt | Bin 0 -> 9817 bytes tests/test_form_pages.py | 90 ++++++++++++++++++++++++++++++++++++++++++++-- wcs/wf/export_to_model.py | 87 ++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 167 insertions(+), 10 deletions(-) create mode 100644 tests/template-out.odt create mode 100644 tests/template.odt diff --git a/tests/template-out.odt b/tests/template-out.odt new file mode 100644 index 0000000000000000000000000000000000000000..f1f1857eb6139d79a30cad0d385a601d89923d40 GIT binary patch literal 31138 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∋8H|hpgRO!QGf<%a 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 E0V%w(h5!Hn literal 0 HcmV?d00001 diff --git a/tests/template.odt b/tests/template.odt new file mode 100644 index 0000000000000000000000000000000000000000..bd5af4353e460335b960c8a1cd60f7fbaa997003 GIT binary patch literal 9817 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