From aeebac88d96a259d3da132891d16795fb3b943d5 Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Wed, 7 May 2014 14:13:10 +0200 Subject: [PATCH] [FIX] code cleanup (addon account) improve the logic of _journal_item_count (removes try/except/pass, use search_count) and remove useless one2many field in res_partner (journal_item_ids) bzr revid: ged@openerp.com-20140507121310-ya6m71fvs40rf90d --- addons/account/partner.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/addons/account/partner.py b/addons/account/partner.py index df4c1ec4888..cafd5505cad 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -172,18 +172,15 @@ class res_partner(osv.osv): return result def _journal_item_count(self, cr, uid, ids, field_name, arg, context=None): - res = dict(map(lambda x: (x,{'journal_item_count': 0, 'contracts_count': 0 }), ids)) - - # the user may not have access rights - try: - for partner in self.browse(cr, uid, ids, context=context): - res[partner.id] = { - 'journal_item_count': len(partner.journal_item_ids), - 'contracts_count': len(partner.contract_ids) - } - except: - pass - return res + MoveLine = self.pool('account.move.line') + AnalyticAccount = self.pool('account.analytic.account') + return { + partner_id: { + 'journal_item_count': MoveLine.search_count(cr, uid, [('partner_id', '=', partner_id)], context=context), + 'contracts_count': AnalyticAccount.search_count(cr,uid, [('partner_id', '=', partner_id)], context=context) + } + for partner_id in ids + } def has_something_to_reconcile(self, cr, uid, partner_id, context=None): ''' @@ -215,7 +212,6 @@ class res_partner(osv.osv): 'debit_limit': fields.float('Payable Limit'), 'total_invoiced': fields.function(_invoice_total, string="Total Invoiced", type='float'), 'contracts_count': fields.function(_journal_item_count, string="Contracts", type='integer', multi="invoice_journal"), - 'journal_item_ids': fields.one2many('account.move.line', 'partner_id', 'Journal Items'), 'journal_item_count': fields.function(_journal_item_count, string="Journal Items", type="integer", multi="invoice_journal"), 'property_account_payable': fields.property( type='many2one',