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

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
parent 624a4266
...@@ -268,6 +268,7 @@ class File(Document, CMFFile): ...@@ -268,6 +268,7 @@ class File(Document, CMFFile):
+ [item[0] for item in temp_ods.getTargetFormatItemList()]\ + [item[0] for item in temp_ods.getTargetFormatItemList()]\
+ [item[0] for item in temp_odg.getTargetFormatItemList()]\ + [item[0] for item in temp_odg.getTargetFormatItemList()]\
+ [item[0] for item in temp_odb.getTargetFormatItemList()] + [item[0] for item in temp_odb.getTargetFormatItemList()]
portal = self.getPortalObject()
if content_type.startswith('text'): if content_type.startswith('text'):
# We can wrap it into TextDocument # We can wrap it into TextDocument
from Products.ERP5Type.Document import newTempTextDocument from Products.ERP5Type.Document import newTempTextDocument
...@@ -295,6 +296,20 @@ class File(Document, CMFFile): ...@@ -295,6 +296,20 @@ class File(Document, CMFFile):
text_content=self.getData(), text_content=self.getData(),
content_type=content_type) content_type=content_type)
return temp_document.convert(format=format, **kw) 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: else:
# We didn't find suitable wrapper to convert this File # We didn't find suitable wrapper to convert this File
if format in VALID_TEXT_FORMAT_LIST: if format in VALID_TEXT_FORMAT_LIST:
......
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