From 3679b0c44c019c5d439aa0f753ff24d5843052bb Mon Sep 17 00:00:00 2001 From: "dle@openerp.com" <> Date: Fri, 29 Mar 2013 12:16:09 +0100 Subject: [PATCH] [FIX]crm: convert lead to opportunity, opportunity always win vs lead, even if lead.stage > opp.lead bzr revid: dle@openerp.com-20130329111609-7v516rnid2ytk836 --- addons/crm/crm_lead.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index d0be688c8a5..acb9b038bfe 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -22,6 +22,7 @@ from openerp.addons.base_status.base_stage import base_stage import crm from datetime import datetime +from operator import itemgetter from openerp.osv import fields, osv import time from openerp import tools @@ -628,12 +629,14 @@ class crm_lead(base_stage, format_address, osv.osv): opportunities = self.browse(cr, uid, ids, context=context) sequenced_opps = [] for opportunity in opportunities: + sequence = -1 if opportunity.stage_id and opportunity.stage_id.state != 'cancel': - sequenced_opps.append((opportunity.stage_id.sequence, opportunity)) - else: - sequenced_opps.append((-1, opportunity)) - sequenced_opps.sort(key=lambda tup: tup[0], reverse=True) - opportunities = [opportunity for sequence, opportunity in sequenced_opps] + sequence = opportunity.stage_id.sequence + + sequenced_opps.append(((int(opportunity.type == 'opportunity'), sequence), opportunity)) + + sequenced_opps.sort(reverse=True) + opportunities = map(itemgetter(1), sequenced_opps) ids = [opportunity.id for opportunity in opportunities] highest = opportunities[0] opportunities_rest = opportunities[1:]