From d8fef2825e751f33020678a3a1e7bce6d6bdee7b Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Wed, 7 May 2014 11:08:41 +0200 Subject: [PATCH] [FIX] code cleanup (addon account_analytic_default) improves the _rules_count method (remove try/catch and better logic), and removes now useless one2many field rules_ids bzr revid: ged@openerp.com-20140507090841-jptga7kjrverd25n --- .../account_analytic_default.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py index 1faf75d5eee..ac8698ae342 100644 --- a/addons/account_analytic_default/account_analytic_default.py +++ b/addons/account_analytic_default/account_analytic_default.py @@ -117,15 +117,12 @@ class sale_order_line(osv.osv): class product_product(osv.Model): _inherit = 'product.product' def _rules_count(self, cr, uid, ids, field_name, arg, context=None): - res = dict(map(lambda x: (x,0), ids)) - try: - for rule in self.browse(cr, uid, ids, context=context): - res[rule.id] = len(rule.rules_ids) - except: - pass - return res + Analytic = self.pool['account.analytic.default'] + return { + product_id: Analytic.search_count(cr, uid, [('product_id', '=', product_id)], context=context) + for product_id in ids + } _columns = { - 'rules_ids': fields.one2many('account.analytic.default', 'product_id', 'Analytic Rules '), 'rules_count': fields.function(_rules_count, string='# Analytic Rules', type='integer'), }