[Erp5-report] r28985 - /erp5/trunk/products/ERP5/Document/Image.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Sep 11 19:31:32 CEST 2009


Author: nicolas
Date: Fri Sep 11 19:31:30 2009
New Revision: 28985

URL: http://svn.erp5.org?rev=28985&view=rev
Log:
Use Conversion API. hasConversion, getConversion, ...

Modified:
    erp5/trunk/products/ERP5/Document/Image.py

Modified: erp5/trunk/products/ERP5/Document/Image.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Image.py?rev=28985&r1=28984&r2=28985&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Image.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Image.py [utf8] Fri Sep 11 19:31:30 2009
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 ##############################################################################
 #
 # Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
@@ -310,6 +311,7 @@
     """
     mime_type = getToolByName(self, 'mimetypes_registry').\
                                 lookupExtension('name.%s' % format)
+    mime_type = str(mime_type)
     src_mimetype = self.getContentType()
     content = '%s' % self.getData()
     if content is not None:
@@ -332,27 +334,32 @@
   security.declareProtected(Permissions.ModifyPortalContent, 'convert')
   def convert(self, format, display=None, quality=75, resolution=None, frame=None, **kw):
     """
-    Implementation of conversion for PDF files
+    Implementation of conversion for Image files
     """
     if format in ('text', 'txt', 'html', 'base_html', 'stripped-html'):
-      try:
-        return self.getConversion(format=format)
-      except KeyError:
+      if not self.hasConversion(format=format):
         mime_type, data = self._convertToText(format)
+        data = aq_base(data)
         self.setConversion(data, mime=mime_type, format=format)
-        return (mime_type, aq_base(data))
+      else:
+        mime_type, data = self.getConversion(format=format)
+      return mime_type, data
     image_size = self.getSizeFromImageDisplay(display)
     if (display is not None or resolution is not None or quality != 75 or format != ''\
                             or frame is not None) and image_size:
-      try:
+      if not self.hasConversion(display=display, format=format,
+                                quality=quality, resolution=resolution,
+                                frame=frame, image_size=image_size):
+        mime, image = self._makeDisplayPhoto(display, format=format, quality=quality,
+                                             resolution=resolution, frame=frame,
+                                             image_size=image_size)
+        self.setConversion(image, mime, format=format, quality=quality,
+                           resolution=resolution, frame=frame,
+                           image_size=image_size)
+      else:
         mime, image = self.getConversion(display=display, format=format,
                                          quality=quality, resolution=resolution,
                                          frame=frame, image_size=image_size)
-      except KeyError:
-        # Generate photo on-the-fly
-        mime, image = self._makeDisplayPhoto(display, format=format, quality=quality,
-                                             resolution=resolution, frame=frame,
-                                             image_size=image_size)
       return mime, image.data
     return self.getContentType(), self.getData()
 




More information about the Erp5-report mailing list