From 7589b157a689f2ae1e9ff32e302e465569dd66c6 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Mon, 22 Nov 2010 16:33:39 +0000
Subject: [PATCH] set an appropriate extension according to OOoTemplate's
 mimetype, not specified format.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@40493 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5OOo/OOoTemplate.py | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/product/ERP5OOo/OOoTemplate.py b/product/ERP5OOo/OOoTemplate.py
index 47484b0ce8..6398407647 100644
--- a/product/ERP5OOo/OOoTemplate.py
+++ b/product/ERP5OOo/OOoTemplate.py
@@ -567,13 +567,28 @@ class OOoTemplate(ZopePageTemplate):
         LOG('ERP5OOo', PROBLEM,
             'Validation of %s failed:\n%s' % (self.getId(), ''.join(err_list)))
 
-    format = opts.get('format', request.get('format', None))
+    extension = None
+    mimetypes_registry = self.getPortalObject().mimetypes_registry
+    mimetype_object_list = mimetypes_registry.lookup(self.content_type)
+    for mimetype_object in mimetype_object_list:
+      if mimetype_object.extensions:
+        extension = mimetype_object.extensions[0]
+        break
+      elif mimetype_object.globs:
+        extension = mimetype_object.globs.strip('*.')
+        break
+    if extension:
+      filename = '%s.%s' % (self._getFileName(), extension)
+    else:
+      filename = self._getFileName()
 
     from Products.ERP5Type.Document import newTempOOoDocument
     tmp_ooo = newTempOOoDocument(self, self.title_or_id())
     tmp_ooo.edit(data=ooo,
-                 source_reference='%s.%s' % (self._getFileName(), format),
+                 source_reference=filename,
                  content_type=self.content_type,)
+
+    format = opts.get('format', request.get('format', None))
     if format:
       # Performance improvement: 
       # Call convertToBaseFormat only if user
-- 
2.30.9