[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:
commit
80ac4f3f4f
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue