From 397e83554b09357a227b4d4b4758739a4778748f Mon Sep 17 00:00:00 2001 From: Thomas Groutars Date: Thu, 14 Aug 2014 16:47:01 +0200 Subject: [PATCH] [FIX] product: make sure unlinked product still exists When uninstalling/updating a module, we may execute unlink method on product.template before product.product. In such cases, the product is already removed after removeing the template (_inherits) and the chained unlink of the product would fail (traceback when browsing). --- addons/product/product.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/product/product.py b/addons/product/product.py index ce17af7f88f..83ab8183f7a 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -589,6 +589,9 @@ class product_product(osv.osv): unlink_ids = [] unlink_product_tmpl_ids = [] for product in self.browse(cr, uid, ids, context=context): + # Check if product still exists, in case it has been unlinked by unlinking its template + if not product.exists(): + continue tmpl_id = product.product_tmpl_id.id # 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)