如何在 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>
在供应商账单中,创建客户发票后,将有一个 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>