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

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Aug 13 17:31:05 CEST 2009


Author: kazuhiko
Date: Thu Aug 13 17:31:05 2009
New Revision: 28369

URL: http://svn.erp5.org?rev=28369&view=rev
Log:
no need to call hasConversion() before getConversion() because it does mostly the same thing and waste of time. use try ... except KeyError instead.
_makeDisplayPhoto returns converted data to make it possible to use it immediately.

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=28369&r1=28368&r2=28369&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Image.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Image.py [utf8] Thu Aug 13 17:31:05 2009
@@ -204,16 +204,15 @@
       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:
-          if not self.hasConversion(display=display, format=format,
-                                    quality=quality, resolution=resolution,
-                                    frame=frame, image_size=image_size):
+          try:
+              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
-              self._makeDisplayPhoto(display, format=format, quality=quality,
-                                     resolution=resolution, frame=frame,
-                                     image_size=image_size)
-          mime, image = self.getConversion(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)
           width, height = (image.width, image.height)
           # Set cookie for chosen size
           if cookie:
@@ -336,25 +335,25 @@
     Implementation of conversion for PDF files
     """
     if format in ('text', 'txt', 'html', 'base_html', 'stripped-html'):
-      if not self.hasConversion(format=format):
+      try:
+        return self.getConversion(format=format)
+      except KeyError:
         mime_type, data = self._convertToText(format)
         self.setConversion(data, mime=mime_type, format=format)
-      return self.getConversion(format=format)
+        return (mime_type, aq_base(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:
-        if not self.hasConversion(display=display, format=format,
-                                  quality=quality, resolution=resolution,
-                                  frame=frame, image_size=image_size):
-            # Generate photo on-the-fly
-            self._makeDisplayPhoto(display, format=format, quality=quality,
-                                   resolution=resolution, frame=frame,
-                                   image_size=image_size)
-        # Return resized image
+      try:
         mime, image = self.getConversion(display=display, format=format,
-                                         quality=quality ,resolution=resolution,
+                                         quality=quality, resolution=resolution,
                                          frame=frame, image_size=image_size)
-        return mime, image.data
+      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()
 
   security.declareProtected(Permissions.View, 'getSearchableText')
@@ -382,17 +381,15 @@
       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:
-          if not self.hasConversion(display=display, format=format,
-                                    quality=quality, resolution=resolution,
-                                    frame=frame, image_size=image_size):
+          try:
+              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
-              self._makeDisplayPhoto(display, format=format, quality=quality,
-                                     resolution=resolution, frame=frame,
-                                     image_size=image_size)
-          # Return resized image
-          mime, image = self.getConversion(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)
           RESPONSE.setHeader('Content-Type', mime)
           return image.index_html(REQUEST, RESPONSE)
 
@@ -483,15 +480,14 @@
   def _makeDisplayPhoto(self, display, format='', quality=75, resolution=None, frame=None,
                         image_size=None):
       """Create given display."""
-      if not self.hasConversion(display=display, format=format, quality=quality,
-                                resolution=resolution, frame=frame, image_size=image_size):
-          image = self._getDisplayPhoto(display, format=format, quality=quality,
-                                                 resolution=resolution, frame=frame,
-                                                 image_size=image_size)
-          self.setConversion(image, mime=image.content_type,
-                                    display=display, format=format,
-                                    quality=quality, resolution=resolution,
-                                    frame=frame, image_size=image_size)
+      image = self._getDisplayPhoto(display, format=format, quality=quality,
+                                             resolution=resolution, frame=frame,
+                                             image_size=image_size)
+      self.setConversion(image, mime=image.content_type,
+                                display=display, format=format,
+                                quality=quality, resolution=resolution,
+                                frame=frame, image_size=image_size)
+      return (image.content_type, aq_base(image))
 
   def _getAspectRatioSize(self, width, height):
       """Return proportional dimensions within desired size."""




More information about the Erp5-report mailing list