[Erp5-report] r37212 ivan - in /erp5/trunk/products/ERP5/Document: Document.py Image.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jul 21 09:55:17 CEST 2010
Author: ivan
Date: Wed Jul 21 09:55:09 2010
New Revision: 37212
URL: http://svn.erp5.org?rev=37212&view=rev
Log:
Unhard code default image quality and make it possible to specify in preferences. Fall back to constant value as before if preference is not specified.
Modified:
erp5/trunk/products/ERP5/Document/Document.py
erp5/trunk/products/ERP5/Document/Image.py
Modified: erp5/trunk/products/ERP5/Document/Document.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Document.py?rev=37212&r1=37211&r2=37212&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Document.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Document.py [utf8] Wed Jul 21 09:55:09 2010
@@ -77,8 +77,8 @@ VALID_IMAGE_FORMAT_LIST = ('jpg', 'jpeg'
DEFAULT_DISPLAY_ID_LIST = ('nano', 'micro', 'thumbnail',
'xsmall', 'small', 'medium',
'large', 'large', 'xlarge',)
-
-DEFAULT_QUALITY = 75
+# default image quality
+DEFAULT_IMAGE_QUALITY = 75
DEFAULT_CONTENT_TYPE = 'text/html'
Modified: erp5/trunk/products/ERP5/Document/Image.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Image.py?rev=37212&r1=37211&r2=37212&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Image.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Image.py [utf8] Wed Jul 21 09:55:09 2010
@@ -44,7 +44,7 @@ from Products.ERP5Type import Permission
from Products.ERP5Type.Utils import fill_args_from_request
from Products.ERP5.Document.File import File
from Products.ERP5.Document.Document import Document, ConversionError,\
- VALID_TEXT_FORMAT_LIST, DEFAULT_DISPLAY_ID_LIST, DEFAULT_QUALITY, _MARKER
+ VALID_TEXT_FORMAT_LIST, DEFAULT_DISPLAY_ID_LIST, DEFAULT_IMAGE_QUALITY, _MARKER
from os.path import splitext
from OFS.Image import Image as OFSImage
from OFS.Image import getImageInfo
@@ -185,7 +185,7 @@ class Image(TextConvertableMixin, File,
security.declareProtected(Permissions.View, 'tag')
def tag(self, display=None, height=None, width=None, cookie=0,
- alt=None, css_class=None, format=None, quality=DEFAULT_QUALITY,
+ alt=None, css_class=None, format=None, quality=None,
resolution=None, frame=None, **kw):
"""Return HTML img tag."""
self._upradeImage()
@@ -193,7 +193,8 @@ class Image(TextConvertableMixin, File,
# Get cookie if display is not specified.
if display is None:
display = self.REQUEST.cookies.get('display', None)
-
+ if quality is None:
+ quality = self.getDefaultImageQuality(format)
# display may be set from a cookie.
image_size = self.getSizeFromImageDisplay(display)
convert_kw = dict(format=format, quality=quality, resolution=resolution,
@@ -268,10 +269,12 @@ class Image(TextConvertableMixin, File,
return links
security.declareProtected(Permissions.AccessContentsInformation, 'displayMap')
- def displayMap(self, exclude=None, format=None, quality=DEFAULT_QUALITY,\
+ def displayMap(self, exclude=None, format=None, quality=None,\
resolution=None):
"""Return list of displays with size info."""
displays = []
+ if quality is None:
+ quality = self.getDefaultImageQuality(format)
for id in self.displayIds(exclude):
if self._isGenerated(id, format=format, quality=quality,\
resolution=resolution):
@@ -331,7 +334,7 @@ class Image(TextConvertableMixin, File,
image_size = self.getSizeFromImageDisplay(kw.get('display'))
# store all keys usefull to convert or resize an image
# 'display' parameter can be discarded
- convert_kw = {'quality': kw.get('quality', DEFAULT_QUALITY),
+ convert_kw = {'quality': kw.get('quality', self.getDefaultImageQuality(format)),
'resolution': kw.get('resolution'),
'frame': kw.get('frame'),
'image_size': image_size,
@@ -406,15 +409,17 @@ class Image(TextConvertableMixin, File,
"""Return raw photo data for given display."""
width, height = self._getAspectRatioSize(*image_size)
if ((width, height) == image_size or (width, height) == (0, 0))\
- and quality == DEFAULT_QUALITY and resolution is None and frame is None\
+ and quality == self.getDefaultImageQuality(format) and resolution is None and frame is None\
and not format:
# No resizing, no conversion, return raw image
return self.getData()
return self._resize(quality, width, height, format, resolution, frame)
- def _makeDisplayPhoto(self, format=None, quality=DEFAULT_QUALITY,
+ def _makeDisplayPhoto(self, format=None, quality=None,
resolution=None, frame=None, image_size=None):
"""Create given display."""
+ if quality is None:
+ quality = self.getDefaultImageQuality(format)
width, height = image_size
base, ext = splitext(self.id)
id = '%s_%s_%s.%s'% (base, width, height, ext,)
@@ -470,3 +475,11 @@ class Image(TextConvertableMixin, File,
"""
File.PUT(self, REQUEST, RESPONSE)
self._update_image_info()
+
+ def getDefaultImageQuality(self, format=None):
+ """
+ Get default image quality for a format.
+ """
+ preference_tool = self.getPortalObject().portal_preferences
+ quality = preference_tool.getPreference('preferred_image_quality', DEFAULT_IMAGE_QUALITY)
+ return quality
More information about the Erp5-report
mailing list