为什么我的私人频道在 Odoo 10 中总是空的?

Why my private channels are always empty in Odoo 10?

问题

讨论 菜单中,您可以看到您的聊天记录。它们按以下方式分组:

如果我去任何频道写任何东西,我都可以看到我刚刚写的东西(就像可以阅读该频道的人一样)。这是正常行为,其他两个类别也应该如此。但是,如果我在私人频道或直接发送消息时执行相同的操作,屏幕仍然是空的:我看不到我刚刚写的内容,也看不到收到消息的人。

我尝试解决它

我比较了标准频道和私人频道,两者的用户配置是一样的。

我已经检查了长轮询端口,但我认为这不是问题所在,因为如果是这样,任何通道都无法正常工作。

我还更新了 basemail 模块,但没有结果。

老实说,我不知道该怎么做,这是在特定服务器上发生的,在其他服务器上我一切正常。我正在尝试比较所有内容,但这会花费我很长时间,因此我们将不胜感激。

终于,我找到了解决方案:

每次您创建新频道或向任何用户发送直接消息(聊天)时,都会在 mail_channel table 中生成一条记录。如果您激活技术设置并转到 设置 > 技术 > 电子邮件 > 频道.

,您可以通过界面看到它们

在这个模型中,有一个名为message_followers_ids的字段,它是一个指向模型mail.followers的One2many。

我的问题(这是由于我安装了第 3 方模块)是创建的频道没有关注者,因此没有显示消息。

例如,我创建了一个名为 test 的新私人频道。创建时,在mail.channelmail.followers模型中创建了一条记录,但它们之间没有link(它是在没有关注者的情况下创建的),所以,当我写消息时,我没能看到,看看mail.followers记录:

  id  | partner_id | channel_id |        res_model         | res_id 
------+------------+------------+--------------------------+--------
 1037 |            |            | mail.channel             |     

但是,我已将在 mail.followers 中创建的记录添加到频道的 message_followers_ids 字段中:

  id  | partner_id | channel_id |        res_model         | res_id 
------+------------+------------+--------------------------+--------
 1037 |            |         65 | mail.channel             |     65

之后,它又开始正常工作了。

出于好奇,如果您有另一个名为 replica 的频道,并且您将其设置为 test 频道的关注者,则在 test 中写入的每条消息都将是replica 中显示,但不是相反。