31 lines
1.1 KiB
Python
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
|