Commit 8f74bb98 authored by Nicolas Delaby's avatar Nicolas Delaby

Extend support of embedded Image of html -> odf conversions

If Image is a Text, then conversion to image format is performed
parent 47ab412e
master allow_login_change allow_login_change_wip arnau arnau-RD-Components-CacheTool arnau-RD-Components-ERP5Form-ERP5Report arnau-RD-Components-ERP5Form-SelectionTool-MemcachedTool arnau-RD-Components-ERP5OOo arnau-RD-Components-PreferenceTool-Preference arnau-RD-Components-Products-import-compat arnau-RD-Components-astroid_cache_per_component_reset arnau-RD-Components-erp5_crm arnau-RD-Components-erp5_trade-TODO-Interactor arnau-TM-Components-Migrate-PortalTransforms arnau-TM-Components-ModuleSecurityInfo arnau-TM-Components-PortalTransforms arnau-TM-FEC-output arnau-TM-WIP arnau-TM-isBuildable-with-multiple-BusinessLinks arnau-TM-jabber-client-desktop-notifications arnau-TM-newContent-temp_object arnau-TM-runUnitTest-clear-previous-execution-catalog arnau-TM-wkhtmltopdf arnau-WIP arnau-kns arnau-kns-without-property-mapping arnau-merge arnau-poc arnau-real-time-inventory-accounting auto_extend_select_list autoflake backup_erp5_workflow bk_erp5ish_actions_tool bk_sqlcatalog boc-interaction-drop bt5_config cache callable-jupyter-storage catalog_filter catalog_fulltext catalog_fulltext_old cedric cedriclen cedriclen-eos cherry-pick-4a8e045d cleanJSByJSLint clean_up_upgrader cleanup_acquisition_base_category cloud_reliability_test cmf_upgrade_versions credential_update_action cribjs-bootloader datetimefield deferred_listbox delivery_item_barcode douglas_forum dream_distributor dsn-phase3 enhance_scalability_testing eos-dev erp5-component erp5-forum erp5-imt erp5-messenger erp5-preference erp5-release erp5-slapos-upgrade erp5-util-testing erp5-vifib erp5-vifib-cleanup erp5_calendar erp5_catalog erp5_catalog_final erp5_corporate_identity erp5_free_subscription erp5_hal_json_style_fix_restricted_access_with_traverse erp5_payslip_migration erp5_workflow erp5testnode_max_timeout feat/coding_style_form_naming feat/dms_implicit_predecessor_successor_fields feat/erp5_ide feat/inventory_api_group_by_time_interval_list feat/olapy feat/python_language_support feat/stock-report-valuation feat/task_distribution_retry_flaky_tests feature/renderjs-ui-no-header fix/ZMI_editor_preference fix/advance_ecommerce_coding_crimes fix/business-template-update-tool fix/hide_diff_action fix/legacy_products_erp5type_document_migration fix/login_validate_check_consistency fix/migrated_person_become_user fix/support-request-app-empty fix/test_result_after_mep fix/testnode_node_title fix/workflow_method_security for_testrunner_1 for_testrunner_2 for_testrunner_3 gabriel gadget-json-value hotfix/rjs-formfields-padding improve_default_caching_policy_manager initsite interaction-drop isDeletable ivan jerome-bt-reference-doc jerome_graph_editor_renderjs jerome_user_preference_time_zone jio jm/form-action-guard js-ui kns lazy_simulation_causality lignan lingnan listbox_url macros_fix mame-test-stock-indexation master-erp5-test-result-scalability master-erp5-test-result-scalability-rebase master-test-fix-additionalbt5path mic_wind monitoring-graph mrp my2to3 new-render-presentation no_longer_simulated_state officejs override_cache_control_header_by_caching_policy_manager pere portal_callables portal_solver_process_security_configuration presentation publish_recursiveReindexObject rebased_mrp refactor/base_edit reindex_calendar_after_change_calendar_exception revert-38554dbe scalability-master scalability-master2 scalability-master2-rebase scalability-roque scalability-roque-2 scalability-run-command shop-box shop-box-rebase streaming_fix streaming_fix-0 support_request syncml taskdistribution-xmlrpc-binary test_page testnode_software_link timezones tristan tristan-merge tristan-performance trustable-x-forwarded-for ttrm valentin_translation_fix view-aggregated-amounts vivekpab_renderjs_interfaces wenjie wenjie_branch wsgi wsgi-gevent wsgi_backport_setbody_lock wsgi_medusa_stream_fix yryr yryr-components-cp yryr-inventory-cache yryr-test yryr-with-components yryr-wkhtmltopdf yusei 0.4.59.1 0.4.59 test-ui test-rjsacc test-rjs renderjs-test erp5.util-0.4.68 erp5.util-0.4.67 erp5.util-0.4.66 erp5.util-0.4.65 erp5.util-0.4.64 erp5.util-0.4.63 erp5.util-0.4.62 erp5.util-0.4.61 erp5.util-0.4.60 erp5.util-0.4.59.1 erp5.util-0.4.59 erp5.util-0.4.58 erp5.util-0.4.57 erp5.util-0.4.56 erp5.util-0.4.55 erp5.util-0.4.54 erp5.util-0.4.53 erp5.util-0.4.52 erp5.util-0.4.49 erp5.util-0.4.46 erp5.util-0.4.44 erp5.util-0.4.43 erp5.util-0.4.41 erp5.util-0.4.40 erp5.util-0.4.37 erp5.util-0.4.1 erp5.util-0.4 erp5.util-0.3 erp5.util-0.2
No related merge requests found
......@@ -1493,6 +1493,30 @@ class TestDocument(TestDocumentMixin):
self.assertEquals(builder.extract('Pictures/%s.jpeg' % image_count),
converted_image, failure_message)
# Let's continue with Presentation Document as embbeded image
document = self.portal.document_module.newContent(portal_type='Presentation')
upload_file = makeFileUpload('TEST-en-003.odp')
image_reference = 'IMAGE-odp'
document.edit(file=upload_file, reference=image_reference)
document.publish()
transaction.commit()
self.tic()
html_content = '<p><img src="%s?format=png&amp;display=%s&amp;quality=75"/></p>' % \
(image_reference, image_display)
web_page.edit(text_content=html_content)
mime_type, odt_archive = web_page.convert('odt')
builder = OOoBuilder(odt_archive)
image_count = builder._image_count
# compute resized image for comparison
mime, converted_image = document.convert(format='png',
display=image_display,
quality=75)
# fetch image from zipped archive content
# then compare with resized ERP5 Image
self.assertEquals(builder.extract('Pictures/%s.png' % image_count),
converted_image, failure_message)
def test_addContributorToDocument(self):
"""
Test if current authenticated user is added to contributor list of document
......
......@@ -137,10 +137,12 @@ class OOOdCommandTransform(commandtransform):
odt_content_modified = True
content_type = image.getContentType()
format = image_parameter_dict.pop('format', None)
if getattr(image, 'meta_type', None) == 'ERP5 Image':
#ERP5 API
# resize image according parameters
if getattr(image, 'convert', None) is not None:
# The document support conversion so perform conversion
# according given parameters
mime, image_data = image.convert(format, **image_parameter_dict)
# wrapp converted data into OFSImage in order to compute metadatas
# on converted result
image = OFSImage(image.getId(), image.getTitle(), image_data)
# image should be OFSImage
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment