[FIX] document: overridden ORM methods need to respect API idiosyncrasies, otherwise...
authorOlivier Dony <odo@openerp.com>
Wed, 16 Oct 2013 10:58:12 +0000 (12:58 +0200)
committerOlivier Dony <odo@openerp.com>
Wed, 16 Oct 2013 10:58:12 +0000 (12:58 +0200)
bzr revid: odo@openerp.com-20131016105812-844cd9xljvkjwtm3

openerp/addons/base/ir/ir_attachment.py

index f8da4db..857ebc7 100644 (file)
@@ -261,10 +261,14 @@ class ir_attachment(osv.osv):
         return len(result) if count else list(result)
 
     def read(self, cr, uid, ids, fields_to_read=None, context=None, load='_classic_read'):
+        if isinstance(ids, (int, long)):
+            ids = [ids]
         self.check(cr, uid, ids, 'read', context=context)
         return super(ir_attachment, self).read(cr, uid, ids, fields_to_read, context, load)
 
     def write(self, cr, uid, ids, vals, context=None):
+        if isinstance(ids, (int, long)):
+            ids = [ids]
         self.check(cr, uid, ids, 'write', context=context, values=vals)
         if 'file_size' in vals:
             del vals['file_size']
@@ -275,6 +279,8 @@ class ir_attachment(osv.osv):
         return super(ir_attachment, self).copy(cr, uid, id, default, context)
 
     def unlink(self, cr, uid, ids, context=None):
+        if isinstance(ids, (int, long)):
+            ids = [ids]
         self.check(cr, uid, ids, 'unlink', context=context)
         location = self.pool.get('ir.config_parameter').get_param(cr, uid, 'ir_attachment.location')
         if location: