Files
enterprise-addons/ai_livechat/models/discuss_channel_member.py
T

31 lines
1.1 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class DiscussChannelMember(models.Model):
_inherit = 'discuss.channel.member'
ai_agent_id = fields.Many2one(
"ai.agent",
compute="_compute_ai_agent_id",
inverse="_inverse_ai_agent_id",
compute_sudo=True,
)
@api.depends("livechat_member_history_ids.ai_agent_id")
def _compute_ai_agent_id(self):
for member in self:
member.ai_agent_id = member.livechat_member_history_ids.ai_agent_id
def _inverse_ai_agent_id(self):
# sudo - im_livechat.channel.member: creating/updating history following
# "ai_agent_id" modification is acceptable.
self.sudo()._create_or_update_history(
{member: {"ai_agent_id": member.ai_agent_id.id} for member in self}
)
def _get_excluded_rtc_members_partner_ids(self):
excluded_partner_ids = super()._get_excluded_rtc_members_partner_ids()
return excluded_partner_ids + self.channel_id.livechat_channel_id.rule_ids.ai_agent_id.partner_id.ids