[FIX] mail_bot: only display odoobot once in mention suggestions

Before this commit odoobot was appearing twice in mention
suggestions when talking to odoobot.

The initial need to be able to ping odoobot from everywhere led to the
override of channel_fetch_listeners. This is not usefull anymore.

This fix simply removes this override to avoid this problem since we
don't have a real use case where we need to ping odoobot in another
channel.

Task 1907142

closes odoo/odoo#28791
This commit is contained in:
XavierDo
2018-11-28 11:35:12 +00:00
parent db21ef7578
commit 136fee6fcf
2 changed files with 8 additions and 7 deletions
-7
View File
@@ -11,13 +11,6 @@ class Channel(models.Model):
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':
+8
View File
@@ -24,6 +24,14 @@ class TestOdoobot(BaseFunctionalTest, MockEmails, TestRecipients):
self.odoobot_ping_body = '<a href="http://odoo.com/web#model=res.partner&amp;id=%s" class="o_mail_redirect" data-oe-id="%s" data-oe-model="res.partner" target="_blank">@OdooBot</a>' % (self.odoobot.id, self.odoobot.id)
self.test_record_employe = self.test_record.sudo(self.user_employee)
@mute_logger('odoo.addons.mail.models.mail_mail')
def test_fetch_listener(self):
channel = self.env['mail.channel'].sudo(self.user_employee).init_odoobot()
partners = self.env['mail.channel'].channel_fetch_listeners(channel.uuid)
odoobot = self.env.ref("base.partner_root")
odoobot_in_fetch_listeners = [partner for partner in partners if partner['id'] == odoobot.id]
self.assertEqual(len(odoobot_in_fetch_listeners), 1, 'odoobot should appear only once in channel_fetch_listeners')
@mute_logger('odoo.addons.mail.models.mail_mail')
def test_odoobot_ping(self):
kwargs = self.message_post_default_kwargs.copy()