From e83709bdcc90eaafb65bbb98fcc76ddcbde5e12d Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Wed, 7 May 2014 15:29:49 +0200 Subject: [PATCH] [FIX] code cleanup (addon project_issue) improves the code of _issue_count (both in partner and in project). This makes the issue_ids field in res_partner useless, so issue_ids is also removed. bzr revid: ged@openerp.com-20140507132949-tbtd4pl33zwhzgwd --- addons/project_issue/project_issue.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 098826c0a06..e07d4dbe957 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -490,10 +490,11 @@ class project(osv.Model): return [('project.task', "Tasks"), ("project.issue", "Issues")] def _issue_count(self, cr, uid, ids, field_name, arg, context=None): - res={} - for issues in self.browse(cr, uid, ids, context): - res[issues.id] = len(issues.issue_ids) - return res + Issue = self.pool['project.issue'] + return { + project_id: Issue.search_count(cr,uid, [('project_id', '=', project_id), ('stage_id.fold', '=', False)], context=context) + for project_id in ids + } _columns = { 'project_escalation_id': fields.many2one('project.project', 'Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', @@ -570,18 +571,15 @@ class project_project(osv.Model): class res_partner(osv.osv): def _issue_count(self, cr, uid, ids, field_name, arg, context=None): - res = dict(map(lambda x: (x,0), ids)) - try: - for partner in self.browse(cr, uid, ids, context=context): - res[partner.id] = len(partner.issue_ids) - except: - pass - return res + Issue = self.pool['project.issue'] + return { + partner_id: Issue.search_count(cr,uid, [('partner_id', '=', partner_id)]) + for partner_id in ids + } """ Inherits partner and adds Issue information in the partner form """ _inherit = 'res.partner' _columns = { - 'issue_ids': fields.one2many('project.issue', 'partner_id', 'Issues'), 'issue_count': fields.function(_issue_count, string='# Issues', type='integer'), } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: