From c941eb8ca424e906669ddabc467568439f363ca6 Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Tue, 6 May 2014 17:07:32 +0200 Subject: [PATCH] [FIX] code cleanup (addon purchase) remove useless one2many field in product.product, and improves the way purchase_count is computed bzr revid: ged@openerp.com-20140506150732-e0ztuzqm7hqu183p --- addons/purchase/purchase.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 272ea77e7e3..4e98282d444 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -1296,15 +1296,13 @@ class product_product(osv.Model): _inherit = 'product.product' def _purchase_count(self, cr, uid, ids, field_name, arg, context=None): - res = dict(map(lambda x: (x,0), ids)) - try: - for purchase in self.browse(cr, uid, ids, context=context): - res[purchase.id] = len(purchase.purchase_ids) - except: - pass - return res + Purchase = self.pool['purchase.order'] + return { + product_id: Purchase.search_count(cr,uid, [('order_line.product_id', '=', product_id)], context=context) + for product_id in ids + } + _columns = { - 'purchase_ids': fields.one2many('purchase.order', 'product_id', 'Purchases'), 'purchase_count': fields.function(_purchase_count, string='# Purchases', type='integer'), }