You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

47 lines
1.7 KiB

# -*- coding: utf-8 -*-
# Copyright 2012-2018 Akretion France
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields, api
class CrmLead(models.Model):
_inherit = 'crm.lead'
_phone_name_sequence = 20
_phone_name_fields = ['phone', 'mobile']
phonecall_ids = fields.One2many(
'crm.phonecall', 'opportunity_id', string='Phone Calls')
phonecall_count = fields.Integer(
compute='_compute_phonecall_count', string='Number of Phonecalls',
readonly=True)
partner_address_mobile = fields.Char(
string='Partner Contact Mobile', related='partner_id.mobile',
readonly=True)
def name_get(self):
if self._context.get('callerid'):
res = []
for lead in self:
if lead.partner_name and lead.contact_name:
name = u'%s (%s)' % (lead.contact_name, lead.partner_name)
elif lead.partner_name:
name = lead.partner_name
elif lead.contact_name:
name = lead.contact_name
else:
name = lead.name
res.append((lead.id, name))
return res
else:
return super(CrmLead, self).name_get()
@api.depends('phonecall_ids')
def _compute_phonecall_count(self):
rg_res = self.env['crm.phonecall'].read_group(
[('opportunity_id', 'in', self.ids)],
['opportunity_id'], ['opportunity_id'])
for rg_re in rg_res:
lead = self.browse(rg_re['opportunity_id'][0])
lead.phonecall_count = rg_re['opportunity_id_count']