[Erp5-report] r22987 - /erp5/trunk/utils/oood/worker.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Aug 13 22:28:49 CEST 2008


Author: kazuhiko
Date: Wed Aug 13 22:28:49 2008
New Revision: 22987

URL: http://svn.erp5.org?rev=22987&view=rev
Log:
if MIMEType information is not found in loaded document (it happens for
*.ppt or *.xls with Mandriva's OOo package), oood tries to guess from
the extension or the filename in the request.

Modified:
    erp5/trunk/utils/oood/worker.py

Modified: erp5/trunk/utils/oood/worker.py
URL: http://svn.erp5.org/erp5/trunk/utils/oood/worker.py?rev=22987&r1=22986&r2=22987&view=diff
==============================================================================
--- erp5/trunk/utils/oood/worker.py (original)
+++ erp5/trunk/utils/oood/worker.py Wed Aug 13 22:28:49 2008
@@ -123,7 +123,7 @@
       convertion to OOo, produces metadata and OOo file url
     """
     self._loadFile(kw['filename'], kw)
-    self._convert()
+    self._convert(kw)
     # if the doc doesn't have title or reference, we use filename for them
     # only on ERP5 object (we don't set them on file)
     # strip filename of #_ prefix
@@ -309,7 +309,7 @@
           metadata[caseDown(n)] = v
     return metadata
 
-  def _convert(self):
+  def _convert(self, kw):
     """
       This method converts non-ODF format into an ODF
       only known mimetypes,store as a file with
@@ -318,7 +318,19 @@
       replacing, because filename may have unusual extension or
       none at all
     """
-    odf_format_info = mimemapper.getOdfInfo(self.metadata['MIMEType'])
+    odf_format_info = None
+    mimetype = self.metadata.get('MIMEType', None)
+    if mimetype is not None:
+      odf_format_info = mimemapper.getOdfInfo(mimetype)
+    else:
+      extension = kw.get('extension', None)
+      if extension is not None:
+        odf_format_info = mimemapper.getOdfInfo(extension=extension)
+      else:
+        filename = kw.get('filename', None)
+        if filename is not None and filename.find('.') != -1:
+          extension = filename.rsplit('.', 1)[-1]
+          odf_format_info = mimemapper.getOdfInfo(extension=extension)
     if odf_format_info is None:
       raise lib.IllegalMimeType(self.metadata['MIMEType'])
     ext = odf_format_info[0]




More information about the Erp5-report mailing list