diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py
index fcfd3861c2c..e2472df9bb3 100644
--- a/addons/website/models/ir_qweb.py
+++ b/addons/website/models/ir_qweb.py
@@ -8,6 +8,8 @@ Also, adds methods to convert values back to openerp models.
import itertools
+import werkzeug.utils
+
from openerp.osv import orm, fields
class QWeb(orm.AbstractModel):
@@ -56,9 +58,34 @@ class HTML(orm.AbstractModel):
_inherit = ['website.qweb.field', 'ir.qweb.field.html']
class Image(orm.AbstractModel):
+ """
+ Widget options:
+
+ ``class``
+ set as attribute on the generated tag
+ """
_name = 'website.qweb.field.image'
_inherit = ['website.qweb.field', 'ir.qweb.field.image']
+ def to_html(self, cr, uid, field_name, record, options,
+ source_element, t_att, g_att, qweb_context):
+ assert source_element.nodeName != 'img',\
+ "Oddly enough, the root tag of an image field can not be img. " \
+ "That is because the image goes into the tag, or it gets the " \
+ "hose again."
+
+ return super(Image, self).to_html(
+ cr, uid, field_name, record, options,
+ source_element, t_att, g_att, qweb_context)
+
+ def record_to_html(self, cr, uid, field_name, record, column, options=None):
+ cls = ''
+ if 'class' in options:
+ cls = ' class="%s"' % werkzeug.utils.escape(options['class'])
+
+ return '
' % (
+ cls, record._model._name, field_name, record.id)
+
class Currency(orm.AbstractModel):
_name = 'website.qweb.field.currency'
_inherit = ['website.qweb.field', 'ir.qweb.field.currency']
diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml
index 1c096ecd3de..03b786ece08 100644
--- a/addons/website_sale/views/website_sale.xml
+++ b/addons/website_sale/views/website_sale.xml
@@ -124,7 +124,7 @@