[Erp5-report] r20765 - /erp5/trunk/products/ERP5/Document/Image.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Apr 23 12:34:33 CEST 2008
Author: nicolas
Date: Wed Apr 23 12:34:32 2008
New Revision: 20765
URL: http://svn.erp5.org?rev=20765&view=rev
Log:
Add new param in cache Conversion key
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=20765&r1=20764&r2=20765&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Image.py (original)
+++ erp5/trunk/products/ERP5/Document/Image.py Wed Apr 23 12:34:32 2008
@@ -193,17 +193,19 @@
display = self.REQUEST.cookies.get('display', None)
# display may be set from a cookie.
+ 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 self.getSizeFromImageDisplay(display):
+ or frame is not None) and image_size:
if not self.hasConversion(display=display, format=format,
quality=quality, resolution=resolution,
- frame=frame):
+ frame=frame, image_size=image_size):
# Generate photo on-the-fly
self._makeDisplayPhoto(display, format=format, quality=quality,
- resolution=resolution, frame=frame)
+ resolution=resolution, frame=frame,
+ image_size=image_size)
mime, image = self.getConversion(display=display, format=format,
- quality=quality ,resolution=resolution,
- frame=frame)
+ quality=quality, resolution=resolution,
+ frame=frame, image_size=image_size)
width, height = (image.width, image.height)
# Set cookie for chosen size
if cookie:
@@ -273,7 +275,7 @@
"""Return list of displays with size info."""
displays = []
for id in self.displayIds(exclude):
- if self._isGenerated(id, format=format, quality=quality,resolution=resolution):
+ if self._isGenerated(id, format=format, quality=quality, resolution=resolution):
photo_width = self._photos[(id,format)].width
photo_height = self._photos[(id,format)].height
bytes = self._photos[(id,format)]._size()
@@ -299,18 +301,20 @@
"""
if format in ('text', 'txt', 'html', 'base_html', 'stripped-html'):
return None, None
+ 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 self.getSizeFromImageDisplay(display):
+ or frame is not None) and image_size:
if not self.hasConversion(display=display, format=format,
quality=quality, resolution=resolution,
- frame=frame):
+ frame=frame, image_size=image_size):
# Generate photo on-the-fly
self._makeDisplayPhoto(display, format=format, quality=quality,
- resolution=resolution, frame=frame)
+ 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)
+ frame=frame, image_size=image_size)
return mime, image.data
return self.getContentType(), self.getData()
@@ -325,18 +329,20 @@
format=format, quality=quality, resolution=resolution, frame=frame))
# display may be set from a cookie (?)
+ 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 self.getSizeFromImageDisplay(display):
+ or frame is not None) and image_size:
if not self.hasConversion(display=display, format=format,
quality=quality, resolution=resolution,
- frame=frame):
+ frame=frame, image_size=image_size):
# Generate photo on-the-fly
self._makeDisplayPhoto(display, format=format, quality=quality,
- resolution=resolution, frame=frame)
+ 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)
+ frame=frame, image_size=image_size)
RESPONSE.setHeader('Content-Type', mime)
return image.index_html(REQUEST, RESPONSE)
@@ -404,21 +410,25 @@
newimg.seek(0)
return newimg
- def _getDisplayData(self, display, format='', quality=75, resolution=None, frame=None):
+ def _getDisplayData(self, display, format='', quality=75, resolution=None, frame=None,
+ image_size=None):
"""Return raw photo data for given display."""
if display is None:
- (width, height) = (self.getWidth(), self.getHeight())
- else:
- (width, height) = self.getSizeFromImageDisplay(display)
+ (width, height) = (self.getWidth(), self.getHeight())
+ elif image_size is None:
+ (width, height) = self.getSizeFromImageDisplay(display)
+ else:
+ (width, height) = image_size
if width == 0 and height == 0:
- width = self.getWidth()
- height = self.getHeight()
+ width = self.getWidth()
+ height = self.getHeight()
(width, height) = self._getAspectRatioSize(width, height)
if (width, height) == (0, 0):return self.getData()
return self._resize(display, width, height, quality, format=format,
resolution=resolution, frame=frame)
- def _getDisplayPhoto(self, display, format='', quality=75, resolution=None, frame=None):
+ def _getDisplayPhoto(self, display, format='', quality=75, resolution=None, frame=None,
+ image_size=None):
"""Return photo object for given display."""
try:
base, ext = string.split(self.id, '.')
@@ -426,19 +436,22 @@
except ValueError:
id = self.id +'_'+ display
image = OFSImage(id, self.getTitle(), self._getDisplayData(display, format=format,
- quality=quality, resolution=resolution, frame=frame))
+ quality=quality, resolution=resolution, frame=frame,
+ image_size=image_size))
return image
- def _makeDisplayPhoto(self, display, format='', quality=75, resolution=None, frame=None):
+ 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):
+ resolution=resolution, frame=frame, image_size=image_size):
image = self._getDisplayPhoto(display, format=format, quality=quality,
- resolution=resolution, frame=frame)
+ 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)
+ frame=frame, image_size=image_size)
def _getAspectRatioSize(self, width, height):
"""Return proportional dimensions within desired size."""
More information about the Erp5-report
mailing list