[IMP] crm: use partner's phone and email on the lead
When available, use the phone and email on the partner When creating a partner, use the information already available Task id: 35420 Closes #18660
This commit is contained in:
@@ -111,6 +111,7 @@ class Lead(models.Model):
|
||||
color = fields.Integer('Color Index', default=0)
|
||||
partner_address_name = fields.Char('Partner Contact Name', related='partner_id.name', readonly=True)
|
||||
partner_address_email = fields.Char('Partner Contact Email', related='partner_id.email', readonly=True)
|
||||
partner_address_phone = fields.Char('Partner Contact Phone', related='partner_id.phone', readonly=True)
|
||||
company_currency = fields.Many2one(string='Currency', related='company_id.currency_id', readonly=True, relation="res.currency")
|
||||
user_email = fields.Char('User Email', related='user_id.email', readonly=True)
|
||||
user_login = fields.Char('User Login', related='user_id.login', readonly=True)
|
||||
@@ -1218,7 +1219,7 @@ class Lead(models.Model):
|
||||
emails = email_re.findall(partner_info['full_name'] or '')
|
||||
email = emails and emails[0] or ''
|
||||
if email and self.email_from and email.lower() == self.email_from.lower():
|
||||
partner_info['full_name'] = '%s <%s>' % (self.partner_name or self.contact_name, email)
|
||||
partner_info['full_name'] = '%s <%s>' % (self.contact_name or self.partner_name, email)
|
||||
break
|
||||
return result
|
||||
|
||||
|
||||
@@ -14,6 +14,27 @@ class Partner(models.Model):
|
||||
opportunity_count = fields.Integer("Opportunity", compute='_compute_opportunity_count')
|
||||
meeting_count = fields.Integer("# Meetings", compute='_compute_meeting_count')
|
||||
|
||||
@api.model
|
||||
def default_get(self, fields):
|
||||
rec = super(Partner, self).default_get(fields)
|
||||
active_model = self.env.context.get('active_model')
|
||||
if active_model == 'crm.lead':
|
||||
lead = self.env[active_model].browse(self.env.context.get('active_id'))
|
||||
rec.update(
|
||||
phone=lead.phone,
|
||||
mobile=lead.mobile,
|
||||
function=lead.function,
|
||||
title=lead.title.id,
|
||||
website=lead.website,
|
||||
street=lead.street,
|
||||
street2=lead.street2,
|
||||
city=lead.city,
|
||||
state_id=lead.state_id.id,
|
||||
country_id=lead.country_id.id,
|
||||
zip=lead.zip,
|
||||
)
|
||||
return rec
|
||||
|
||||
@api.multi
|
||||
def _compute_opportunity_count(self):
|
||||
for partner in self:
|
||||
|
||||
@@ -253,6 +253,13 @@
|
||||
<field name="partner_id" domain="[('customer', '=', True)]" context="{'search_default_customer': 1}"/>
|
||||
<field name="email_from" invisible="1"/>
|
||||
<field name="phone" invisible="1"/>
|
||||
<field name="partner_name" invisible="1"/>
|
||||
<field name="street" invisible="1"/>
|
||||
<field name="street2" invisible="1"/>
|
||||
<field name="city" invisible="1"/>
|
||||
<field name="state_id" invisible="1"/>
|
||||
<field name="zip" invisible="1"/>
|
||||
<field name="country_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="company_currency" invisible="1"/>
|
||||
<label for="planned_revenue"/>
|
||||
@@ -497,8 +504,22 @@
|
||||
'default_phone': phone, 'default_mobile': mobile,
|
||||
'default_email': email_from,
|
||||
'default_user_id': user_id, 'default_team_id': team_id, 'default_website': website}"/>
|
||||
<field name="email_from" string="Email" widget="email"/>
|
||||
<field name="phone" widget="phone"/>
|
||||
<field name="partner_address_email"
|
||||
attrs="{'invisible': [('partner_address_email', '==', False)]}"
|
||||
widget="email"
|
||||
string="Email"/>
|
||||
<field name="email_from"
|
||||
attrs="{'invisible': [('partner_address_email', '!=', False)]}"
|
||||
string="Email"
|
||||
widget="email"/>
|
||||
<field name="partner_address_phone"
|
||||
attrs="{'invisible': [('partner_address_phone', '==', False)]}"
|
||||
readonly="1"
|
||||
widget="phone"
|
||||
string="Phone"/>
|
||||
<field name="phone"
|
||||
attrs="{'invisible': [('partner_address_phone', '!=', False)]}"
|
||||
widget="phone"/>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
@@ -521,9 +542,9 @@
|
||||
<page string="Internal Notes">
|
||||
<field name="description"/>
|
||||
</page>
|
||||
<page name="lead" string="Contact Information">
|
||||
<page name="lead" string="Followup">
|
||||
<group>
|
||||
<group>
|
||||
<group string="Initial Contact Information">
|
||||
<field name="partner_name"/>
|
||||
<label for="street" string="Address"/>
|
||||
<div class="o_address_format">
|
||||
@@ -537,7 +558,7 @@
|
||||
<field name="website" widget="url" placeholder="e.g. www.odoo.com"/>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<group class="mt48">
|
||||
<label for="contact_name"/>
|
||||
<div class="o_row">
|
||||
<field name="contact_name"/>
|
||||
|
||||
@@ -149,6 +149,8 @@ var ChatterComposer = composer.BasicComposer.extend({
|
||||
res_model: 'res.partner',
|
||||
res_id: partner_id,
|
||||
context: {
|
||||
active_model: self.model,
|
||||
active_id: self.context.default_res_id,
|
||||
force_email: true,
|
||||
ref: "compound_context",
|
||||
default_name: parsed_email[0],
|
||||
|
||||
Reference in New Issue
Block a user