[MERGE] [FIX] product: fixed product unlink. When unlinking products, empty product templates were first unlinked, leading to products being deleted due to ondelete cascade. When unlinking the products, they were already deleted, leading to an access denied error when trying to delete the mail.message linked to the products. Now templates are unlinked after the products.

lp bug: https://launchpad.net/bugs/1098607 fixed

bzr revid: tde@openerp.com-20130326090448-ztmte6zf4xfudxbi
This commit is contained in:
Thibault Delavallée 2013-03-26 10:04:48 +01:00
commit 80ac4f3f4f
1 changed files with 5 additions and 2 deletions

View File

@ -588,10 +588,13 @@ class product_product(osv.osv):
# Check if the product is last product of this template
other_product_ids = self.search(cr, uid, [('product_tmpl_id', '=', tmpl_id), ('id', '!=', product.id)], context=context)
if not other_product_ids:
unlink_product_tmpl_ids.append(tmpl_id)
unlink_product_tmpl_ids.append(tmpl_id)
unlink_ids.append(product.id)
res = super(product_product, self).unlink(cr, uid, unlink_ids, context=context)
# delete templates after calling super, as deleting template could lead to deleting
# products due to ondelete='cascade'
self.pool.get('product.template').unlink(cr, uid, unlink_product_tmpl_ids, context=context)
return super(product_product, self).unlink(cr, uid, unlink_ids, context=context)
return res
def onchange_uom(self, cursor, user, ids, uom_id, uom_po_id):
if uom_id and uom_po_id: