Anto has proposed merging
lp:~openerp-dev/openobject-addons/trunk-bug-1065751-abo into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
Related bugs:
Bug #1065751 in OpenERP Addons: "Lead -> Opportunity conversion creates
customer duplicate"
https://bugs.launchpad.net/openobject-addons/+bug/1065751
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-1065751-abo/+merge/133292
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-1065751-abo/+merge/133292
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-bug-1065751-abo.
=== modified file 'crm/crm_lead.py'
--- crm/crm_lead.py 2012-11-02 17:37:01 +0000
+++ crm/crm_lead.py 2012-11-07 16:41:32 +0000
@@ -610,9 +610,9 @@
}
def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None):
- partner = self.pool.get('res.partner')
customer = False
if partner_id:
+ partner = self.pool.get('res.partner')
customer = partner.browse(cr, uid, partner_id, context=context)
for lead in self.browse(cr, uid, ids, context=context):
if lead.state in ('done', 'cancel'):
@@ -676,19 +676,17 @@
def convert_partner(self, cr, uid, ids, action='create', partner_id=False, context=None):
"""
- This function convert partner based on action.
+ Convert partner based on action.
if action is 'create', create new partner with contact and assign lead to new partner_id.
otherwise assign lead to specified partner_id
"""
if context is None:
context = {}
partner_ids = {}
- force_partner_id = partner_id
for lead in self.browse(cr, uid, ids, context=context):
if action == 'create':
if not partner_id:
partner_id = self._create_lead_partner(cr, uid, lead, context)
- partner_id = force_partner_id or self._create_lead_partner(cr, uid, lead, context=context)
self._lead_set_partner(cr, uid, lead, partner_id, context=context)
partner_ids[lead.id] = partner_id
return partner_ids
=== modified file 'crm/wizard/crm_lead_to_opportunity.py'
--- crm/wizard/crm_lead_to_opportunity.py 2012-09-26 15:42:32 +0000
+++ crm/wizard/crm_lead_to_opportunity.py 2012-11-07 16:41:32 +0000
@@ -175,12 +175,19 @@
return res
def _convert_opportunity(self, cr, uid, ids, vals, context=None):
+ """
+ When "massively" (more than one at a time) converting leads to
+ opportunities, check the salesteam_id and salesmen_ids and update
+ the values before calling super.
+ """
+ if context is None:
+ context = {}
data = self.browse(cr, uid, ids, context=context)[0]
salesteam_id = data.section_id and data.section_id.id or False
- salesman = []
+ salesmen_ids = []
if data.user_ids:
- salesman = [x.id for x in data.user_ids]
- vals.update({'user_ids': salesman, 'section_id': salesteam_id})
+ salesmen_ids = [x.id for x in data.user_ids]
+ vals.update({'user_ids': salesmen_ids, 'section_id': salesteam_id})
return super(crm_lead2opportunity_mass_convert, self)._convert_opportunity(cr, uid, ids, vals, context=context)
def mass_convert(self, cr, uid, ids, context=None):
=== modified file 'crm/wizard/crm_lead_to_partner.py'
--- crm/wizard/crm_lead_to_partner.py 2012-09-26 08:54:54 +0000
+++ crm/wizard/crm_lead_to_partner.py 2012-11-07 16:41:32 +0000
@@ -35,7 +35,7 @@
}
def view_init(self, cr, uid, fields, context=None):
"""
- This function checks for precondition before wizard executes
+ Check for precondition before wizard executes.
"""
if context is None:
context = {}
@@ -69,22 +69,19 @@
return partner_id
def default_get(self, cr, uid, fields, context=None):
- """
- This function gets default values
- """
- res = super(crm_lead2partner, self).default_get(cr, uid, fields, context=context)
+ res = super(crm_lead2partner, self).default_get(cr, uid, fields, context=context)
partner_id = self._select_partner(cr, uid, context=context)
if 'partner_id' in fields:
res.update({'partner_id': partner_id})
if 'action' in fields:
res.update({'action': partner_id and 'exist' or 'create'})
-
+
return res
def open_create_partner(self, cr, uid, ids, context=None):
"""
- This function Opens form of create partner.
+ Open form of create partner.
"""
view_obj = self.pool.get('ir.ui.view')
view_id = view_obj.search(cr, uid, [('model', '=', self._name), \
@@ -101,21 +98,21 @@
def _create_partner(self, cr, uid, ids, context=None):
"""
- This function Creates partner based on action.
+ Create partner based on action.
"""
if context is None:
context = {}
lead = self.pool.get('crm.lead')
- lead_ids = context and context.get('active_ids') or []
+ lead_ids = context.get('active_ids', [])
data = self.browse(cr, uid, ids, context=context)[0]
partner_id = data.partner_id and data.partner_id.id or False
return lead.convert_partner(cr, uid, lead_ids, data.action, partner_id, context=context)
def make_partner(self, cr, uid, ids, context=None):
"""
- This function Makes partner based on action.
+ Make a partner based on action.
+ Only called from form view, so only meant to convert one lead at a time.
"""
- # Only called from Form view, so only meant to convert one Lead.
lead_id = context and context.get('active_id') or False
partner_ids_map = self._create_partner(cr, uid, ids, context=context)
return self.pool.get('res.partner').redirect_partner_form(cr, uid, partner_ids_map.get(lead_id, False), context=context)
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp