summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGery Debongnie <ged@openerp.com>2014-05-07 11:08:41 +0200
committerGery Debongnie <ged@openerp.com>2014-05-07 11:08:41 +0200
commitd8fef2825e751f33020678a3a1e7bce6d6bdee7b (patch)
treeb3c3b7f0ce8d3cad9b2e63e0d084f7a6f7521644
parent943f2d4e4ed6f35c3a8a696a9b16ef04c84b8dc1 (diff)
[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
-rw-r--r--addons/account_analytic_default/account_analytic_default.py13
1 files 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'),
}