Files
odoo_source/addons/website_crm_livechat/models/crm_lead.py
T
Nicolas Seinlet 9a01a2953f [IMP] mail, im_livechat: inline sql instead of long id list
using inselect operator to inline sql in the search method and avoid ORM
to fetch multiple useless messages to check if there's one

closes odoo/odoo#70410

X-original-commit: 505c7b0946689d3ac1ac4dd2f59cf4d535c36cbb
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-05-05 12:40:29 +00:00

22 lines
874 B
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class Lead(models.Model):
_inherit = 'crm.lead'
visitor_sessions_count = fields.Integer('# Sessions', compute="_compute_visitor_sessions_count", groups="im_livechat.im_livechat_group_user")
@api.depends('visitor_ids.mail_channel_ids')
def _compute_visitor_sessions_count(self):
for lead in self:
lead.visitor_sessions_count = len(lead.visitor_ids.mail_channel_ids)
def action_redirect_to_livechat_sessions(self):
visitors = self.visitor_ids
action = self.env["ir.actions.actions"]._for_xml_id("website_livechat.website_visitor_livechat_session_action")
action['domain'] = [('livechat_visitor_id', 'in', visitors.ids), ('has_message', '=', True)]
return action