From 8b4f905bba3b8e5b3aab84fe0b00caf4908054d7 Mon Sep 17 00:00:00 2001 From: Nicolas Delaby <nicolas@nexedi.com> Date: Mon, 13 Sep 2010 15:02:29 +0000 Subject: [PATCH] Get a new chance to have a successful conversion of File content by looking into portal_tranforms machinery. If the content_type of file is known by portal_transforms as supported input content_type, we can expect a successful conversion. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@38313 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/File.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/product/ERP5/Document/File.py b/product/ERP5/Document/File.py index e1889f0199..de7218f631 100644 --- a/product/ERP5/Document/File.py +++ b/product/ERP5/Document/File.py @@ -268,6 +268,7 @@ class File(Document, CMFFile): + [item[0] for item in temp_ods.getTargetFormatItemList()]\ + [item[0] for item in temp_odg.getTargetFormatItemList()]\ + [item[0] for item in temp_odb.getTargetFormatItemList()] + portal = self.getPortalObject() if content_type.startswith('text'): # We can wrap it into TextDocument from Products.ERP5Type.Document import newTempTextDocument @@ -295,6 +296,20 @@ class File(Document, CMFFile): text_content=self.getData(), content_type=content_type) return temp_document.convert(format=format, **kw) + elif content_type in portal.portal_transforms._mtmap: + # Look if portal_transforms can handle the content_type + # of this File + mime_type = getToolByName(portal, 'mimetypes_registry').\ + lookupExtension('name.%s' % format) + result = portal.portal_transforms.convertToData(mime_type, self.getData(), + object=self, context=self, + mimetype=content_type) + if not result: + raise ConversionError('File conversion error. ' + 'portal_transforms failed to convert '\ + 'from %s to %s; %r' % (content_type, mime_type, + self)) + return str(mime_type), result else: # We didn't find suitable wrapper to convert this File if format in VALID_TEXT_FORMAT_LIST: -- 2.30.9