diff --git a/addons/website/models/website.py b/addons/website/models/website.py index f7f90459b62..2e92968fa30 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -684,12 +684,12 @@ class ir_attachment(osv.osv): result[attach.id] = self.pool['website'].image_url(cr, uid, attach, 'datas') return result def _datas_checksum(self, cr, uid, ids, name, arg, context=None): - return dict( - (attach['id'], self._compute_checksum(attach)) - for attach in self.read( - cr, uid, ids, ['res_model', 'res_id', 'type', 'datas'], - context=context) - ) + result = dict.fromkeys(ids, False) + attachments = self.read(cr, uid, ids, ['type'], context=context) + view_attachment_ids = [attachment['id'] for attachment in attachments if attachment['type'] == 'ir.ui.view'] + for attach in self.read(cr, uid, view_attachment_ids, ['res_model', 'res_id', 'type', 'datas'], context=context): + result[attach['id']] = self._compute_checksum(attach) + return result def _compute_checksum(self, attachment_dict): if attachment_dict.get('res_model') == 'ir.ui.view'\ @@ -705,7 +705,7 @@ class ir_attachment(osv.osv): return result for record in self.browse(cr, uid, ids, context=context): - if not record.datas: continue + if record.type != 'ir.ui.view' or not record.datas: continue try: result[record.id] = openerp.tools.image_resize_image_big(record.datas) except IOError: # apparently the error PIL.Image.open raises