Odoo Mindscape. Understand Odoo faster. Explore modules, fields, dependencies and version differences in one place instead of digging through the source code.

Module: Website Live Chat

Entity: website.visitor

Compute Method: _compute_current_livechat_agent_ids

Inputs Method Outputs
visitors_channel_query = self.env["discuss.channel"]._search(
            [("livechat_visitor_id", "in", self.ids), ("livechat_end_dt", "=", False)],
        )
histories_by_visitor = dict(
            self.env["im_livechat.channel.member.history"]._read_group(
                [
                    ("channel_id", "in", visitors_channel_query.subselect()),
                    ("livechat_member_type", "!=", "visitor"),
                    ("member_id", "!=", False),
                ],
                ["channel_id.livechat_visitor_id"],
                ["id:recordset"],
            )
        )
for visitor in self:
            correspondents_history = histories_by_visitor.get(
                visitor, self.env["im_livechat.channel.member.history"]
            )
            visitor.current_livechat_agent_ids = correspondents_history.partner_id

Back to entity