summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Arnold <dar@devco.co>2017-04-18 07:33:34 -0500
committerThibault Delavallée <tde@odoo.com>2017-05-29 18:19:43 +0200
commitcd6ff51bfaed4dc88ddf33d879bd31ff2e6836f1 (patch)
tree76f7f4fce761dec4ad8d7d7c0107f40d14c8dca6
parented4b9064a109e19a9c4969ebf0b563d3d53530b8 (diff)
[IMP] lead: improve extensibility of partner create method
Before this commit _lead_create_contact actually constructed values AND created the partner in one single step, making it difficult to override in localizations that affect the partner model. As containing method already existed, the partner creation was moved up to this method, and the method was renamed to match with the file's conventions. Now this method cleanly constructs the values. Closes #16493 .
-rw-r--r--addons/crm/models/crm_lead.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py
index c50b2ed9b1f..8ca20f7a84b 100644
--- a/addons/crm/models/crm_lead.py
+++ b/addons/crm/models/crm_lead.py
@@ -675,7 +675,7 @@ class Lead(models.Model):
return True
@api.multi
- def _lead_create_contact(self, name, is_company, parent_id=False):
+ def _create_lead_partner_data(self, name, is_company, parent_id=False):
""" extract data from lead to create a partner
:param name : furtur name of the partner
:param is_company : True if the partner is a company
@@ -683,7 +683,7 @@ class Lead(models.Model):
:returns res.partner record
"""
email_split = tools.email_split(self.email_from)
- values = {
+ return {
'name': name,
'user_id': self.user_id.id,
'comment': self.description,
@@ -705,30 +705,30 @@ class Lead(models.Model):
'is_company': is_company,
'type': 'contact'
}
- return self.env['res.partner'].create(values)
@api.multi
def _create_lead_partner(self):
""" Create a partner from lead data
:returns res.partner record
"""
+ Partner = self.env['res.partner']
contact_name = self.contact_name
if not contact_name:
- contact_name = self.env['res.partner']._parse_partner_name(self.email_from)[0] if self.email_from else False
+ contact_name = Partner._parse_partner_name(self.email_from)[0] if self.email_from else False
if self.partner_name:
- partner_company = self._lead_create_contact(self.partner_name, True)
+ partner_company = Partner.create(self._create_lead_partner_data(self.partner_name, True))
elif self.partner_id:
partner_company = self.partner_id
else:
partner_company = None
if contact_name:
- return self._lead_create_contact(contact_name, False, partner_company.id if partner_company else False)
+ return Partner.create(self._create_lead_partner_data(contact_name, False, partner_company.id if partner_company else False))
if partner_company:
return partner_company
- return self._lead_create_contact(self.name, False)
+ return Partner.create(self._create_lead_partner_data(self.name, False))
@api.multi
def handle_partner_assignation(self, action='create', partner_id=False):