一、使用方式:1、在定义模型的py文件里继承mail模型
class DemoModle(models.Model): """ 模型名称 """ _name = ‘demo.model‘ # 定义 模型名(类名) 必写 _rec_name = ‘name‘ # 定义 模型引用时 显示的默认字段 非必写 _description = ‘demo model‘ # 定义数据库中的表名 非必写 _inherit = [‘mail.thread‘, ‘mail.activity.mixin‘] # 集成消息模型 增加消息记录通知功能
一、 odoo14里是:tracking=True
user_id = fields.Many2one(‘res.users‘, string=‘Salesperson‘, index=True, tracking=True)
add_follow_ids = fields.Many2many(‘hr.employee‘,string=u‘关注者‘)
二、 odoo12里面是:track_visibility
inout = fields.Selection(string="InOut", selection=[(‘Import‘, ‘进口‘), (‘Export‘, ‘出口‘), ], track_visibility=‘always‘,)
contract_num = fields.Char(string="Contract Num", track_visibility=‘onchange‘)
注意:
track_visibility
属性设置为onchange
(当字段值改变时展示在通知中)always
(该值总是会被显示在通知中,一般用于让通知内容更好理解)def btn_add_follow(self):
"""自动添加关注者"""
partner_ids= []
for employee in self.add_follow_ids:
if employee.user_id.partner_id:
partner_ids.append(employee.user_id.partner_id.id)
self.message_subscribe(partner_ids=partner_ids )
"""自定义发消息:在form表单下面显示的那一种"""
p_ids= []
for line in self.message_follower_ids:
p_ids.append(line.partner_id.id)
self.message_post(body=‘%s-%s测试消息发给关注者‘ % (self.name,self.create_uid.name),
subject = ‘邮件主题:‘, partner_ids = p_ids)
二、在form表达添加
<form> .... .... <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> </form>
原文:https://www.cnblogs.com/1314520xh/p/14646061.html