Odoo我如何向追随者发送自定义消息

2024-10-06 09:58:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在创建记录时向关注者发送cuustom消息 我的班级:

class StockAlert(models.Model):
    _name = "stock.alert"
    _inherit = ['mail.thread', 'mail.activity.mixin']

    responsable_id = fields.Many2one('res.users' ,store=True)

    @api.multi
    def write(self, vals):
      result = super(StockAlert, self).write(vals)
      for record in self:
          followers= []
          if record.responsable_id.partner_id.id not in record.message_follower_ids.ids:
              followers.append(record.responsable_id.partner_id.id)
          record.message_subscribe(followers)
      return result

    @api.model
    def create(self, vals):
      result = super(StockAlert, self).create(vals)
      for record in result:
          followers= []
          if record.responsable_id.partner_id.id not in record.message_follower_ids.ids:
              followers.append(record.responsable_id.partner_id.id)
          record.message_subscribe(followers)
      return result

在我看来,这是一个喋喋不休的话题:

<div class="oe_chatter">
            <field name="message_follower_ids" widget="mail_followers"/>
             <field name="activity_ids" widget="mail_activity"/>
            <field name="message_ids" widget="mail_thread"/>          
          </div>

请帮忙


Tags: nameinselfididsmessagepartnermail
1条回答
网友
1楼 · 发布于 2024-10-06 09:58:59

我不完全确定追随者订阅是否正确,但发布消息应该很容易。订阅后立即执行以下操作:

record.message_post(body)  # body should be a string

查看message_post的定义,以获得更多可能的参数,如subjectpartner_ids

partner_ids可能会让您感兴趣,因为此参数可用于自动订阅message_post。例如在create中:

@api.model
def create(self, vals):
    result = super().create(vals)
    for record in result:
        partner_ids = record.responsable_id.partner_id.ids
        body = 'hello world'
        record.with_context(mail_post_autofollow=1).message_post(
            body, partner_ids=partner_ids)
    return result

相关问题 更多 >