From 1538070d1c228de32e215c05af30a4ecfab91443 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Fri, 15 Oct 2010 09:45:37 +0000
Subject: [PATCH] modify ImageField: * 'image_display' parameter is no longer
 required. the image will not be resized if this parameter is empty. *
 'resolution' parater is now respected. it was just ignored before. * creates
 a shorter URL.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@39220 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Form/ImageField.py | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/product/ERP5Form/ImageField.py b/product/ERP5Form/ImageField.py
index 98f55a119d..f5024cb7a8 100644
--- a/product/ERP5Form/ImageField.py
+++ b/product/ERP5Form/ImageField.py
@@ -32,9 +32,7 @@ from Products.Formulator.Field import ZMIField
 from Products.Formulator.DummyField import fields
 from OFS.Image import Image as OFSImage
 from lxml.etree import Element
-from Acquisition import aq_base
 from lxml import etree
-from decimal import Decimal
 import re
 
 DRAW_URI = 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0'
@@ -66,7 +64,7 @@ class ImageFieldWidget(Widget.TextWidget):
         "The display size. See ERP5.Document.Image.default_displays_id_list "
         "for possible values. This is only used with ERP5 Images."),
                                default='thumbnail',
-                               required=1)
+                               required=0)
 
     image_format = fields.StringField('image_format',
                                title='Image Format',
@@ -100,13 +98,18 @@ class ImageFieldWidget(Widget.TextWidget):
               field.get_value('title')
         css_class = field.get_value('css_class')
         extra = field.get_value('extra')
-        display = field.get_value('image_display')
-        format = field.get_value('image_format')
-        resolution = field.get_value('image_resolution')
+        options = {}
+        options['display'] = field.get_value('image_display')
+        options['format'] = field.get_value('image_format')
+        options['resolution'] = field.get_value('image_resolution')
+        parameters = '&'.join(['%s=%s' % (k, v) for k, v in options.items() \
+                               if v])
+        if parameters:
+            image = '%s?%s' % (image, parameters)
         return Widget.render_element(
             "img",
             alt=alt,
-            src="%s?display=%s&format=%s&" % (image, display, format),
+            src=image,
             css_class=css_class,
             extra=extra,
         )
-- 
2.30.9