Odoo 14.0-20221212 (Community Edition)
如图,给表单新增一个类似聊天的窗口,当记录一些表单活动(本例为自动记录当前记录状态变化)
odoo14customestatemodelsestate_property.py
需要继承mail.thread
模型,并为需要追踪的字段设置tracking
属性,并设置属性值为真值
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class EstateProperty(models.Model):
_name = 'estate.property'
_description = 'estate property table'
_inherit = ['mail.thread'] # 必须继承该模型
name = fields.Char(required=True)
state = fields.Selection(
string='State',
selection=[('new','New'),
('offerReceived','Offer Received'),
('offerAccepted', 'Offer Accepted'),
('sold','Sold'),
('canceled', 'Canceled')],
copy=False,
tracking=1 # 该属性不能少,且必须为真值
)
# ...此处代码略
说明:
mail.thread
模型,该模型类型为models.AbstractModel
,其定义文件为 odoo14odooaddonsmailmodelsmail_thread.py
,其字段命名均以message_
开头
tracking
该属性为True
或数字时,打开针对该属性所属字段的修改日志--当所属字段内容发生变化时,系统会将该字段变化前后的值写入日志中,这个数字的大小影响变更日志在日志中的排序。
__manifest__.py
配置odoo14customestate__manifest__.py
需要配置mail
模块依赖,因为mail.thread
模型归属该模块
#!/usr/bin/env python
# -*- coding:utf-8 -*-
{
'name': 'estate',
'depends': ['base', 'mail'],
# 此处代码略...
}
添加 如果希望在窗口中展示添加更多功能,可以添加字段,如下 说明: 效果:
作者:授客
activity_ids
来自mail.activity.mixin
模型,类型为models.AbstractModel
,定义在文件 odoo14odooaddonsmailmodelsmail_activity.py
,其字段命名均以activity_
,对应的,模型定义中_inherit
属性也需要添加该模块,如下:_inherity= ['mail.thread', 'mail.activity.mixin']
微信/QQ:1033553122
全国软件测试QQ交流群:7156436
Git地址:https://gitee.com/ishouke
友情提示:限于时间仓促,文中可能存在错误,欢迎指正、评论!
作者五行缺钱,如果觉得文章对您有帮助,请扫描下边的二维码打赏作者,金额随意,您的支持将是我继续创作的源动力,打赏后如有任何疑问,请联系我!!!
微信打赏
支付宝打赏 全国软件测试交流QQ群
参与评论
手机查看
返回顶部