Files
odoo_source/addons/mail_bot/models/mail_channel.py
T
Nicolas Seinlet 0e948f6f35 [FIX] mail_bot: call super and append result
Instead of using an or which is a nightmare for PostgreSQL
in this use case, call super and simply append odoobot to
the result.

closes odoo/odoo#28017
2018-10-22 10:15:28 +00:00

37 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, models, _
class Channel(models.Model):
_inherit = 'mail.channel'
def _execute_command_help(self, **kwargs):
super(Channel, self)._execute_command_help(**kwargs)
self.env['mail.bot']._apply_logic(self, kwargs, command="help") # kwargs are not usefull but...
@api.model
def channel_fetch_listeners(self, uuid):
""" Return the id, name and email of partners listening to the given channel """
result = super().channel_fetch_listeners(uuid)
odoobot = self.env.ref("base.partner_root").sudo()
return result + [{'id': odoobot.id, 'name': odoobot.name, 'email': odoobot.email}]
@api.model
def init_odoobot(self):
if self.env.user.odoobot_state == 'not_initialized':
partner = self.env.user.partner_id
odoobot_id = self.env['ir.model.data'].xmlid_to_res_id("base.partner_root")
channel = self.with_context({"mail_create_nosubscribe": True}).create({
'channel_partner_ids': [(4, partner.id), (4, odoobot_id)],
'public': 'private',
'channel_type': 'chat',
'email_send': False,
'name': 'OdooBot'
})
message = _("Hello,<br/>Odoo's chat helps employees collaborate efficiently. I'm here to help you discover its features.<br/><b>Try to send me an emoji :)</b>")
channel.sudo().message_post(body=message, author_id=odoobot_id, message_type="comment", subtype="mail.mt_comment")
self.env.user.odoobot_state = 'onboarding_emoji'
return channel