如何在 odoo 10 中更改状态时发送消息通知?

How to send message notifications when a state is changed in odoo 10?

在供应商账单中,创建客户发票后,将有一个 message_ids 字段,用于创建消息并将消息发送给所有关注者列表中的相关人员。默认情况下,这就像创建发票并输入消息一样,之后在单击发送按钮时,通知消息将发送到位于讨论模块中的关注者收件箱。

在不点击新消息发送消息的情况下,我想在更改状态时向关注者发送状态已更改的通知

为字段状态写一个onchange函数,并为关注者创建一条消息记录。 例如:

@api.depends('states')
def func():
    # create a message record with appropriate data
    return 

只需在 .py 文件的状态字段声明中添加 track_visibility='onchage'

在python中:

state = fields.Selection([
        ('draft', 'Draft'),
        ('open', 'Open'),
        ('paid', 'Paid'),
        ('cancel', 'Cancelled'),
    ], string='Status',track_visibility='onchange')



 @api.multi
    def _track_subtype(self, init_values):
        self.ensure_one()
        if 'state' in init_values and self.state == 'sale':
            return 'custom_invoice.mt_invoices_confirmed'
        return super(SaleOrder, self)._track_subtype(init_values)

在xml中:

 <record id="mt_order_confirmed_custom" model="mail.message.subtype">
        <field name="name"> Approval Request</field>
        <field name="res_model">sale.order</field>
        <field name="default" eval="True" />
        <field name="description">Request  Approval</field>
    </record>