From 836f816f31545bad6676b8425110b21963c0a564 Mon Sep 17 00:00:00 2001 From: Nicolas Delaby <nicolas@nexedi.com> Date: Fri, 11 Sep 2009 17:31:30 +0000 Subject: [PATCH] Use Conversion API. hasConversion, getConversion, ... git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@28985 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/Image.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/product/ERP5/Document/Image.py b/product/ERP5/Document/Image.py index 4ecdbd2996..4671eb625c 100644 --- a/product/ERP5/Document/Image.py +++ b/product/ERP5/Document/Image.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- ############################################################################## # # Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. @@ -310,6 +311,7 @@ class Image(File, OFSImage): """ 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 @@ class Image(File, OFSImage): 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: - 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 + 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) return mime, image.data return self.getContentType(), self.getData() -- 2.30.9