odoo有着强大的消息记录、通知机制;

实际开发中,常常会有客户的需求,页面上form视图中的某些字段不允许反复修改,

假如有的用户修改了,恶意搞坏,往往容易给公司利益造成损失,或破坏,那么如何有效的记录相关用户的操作,

提供一定的安全审计功能?

别担心,odoo已经为我们考虑到了!!!

下面我们就来介绍下,

首先,先保证整体基本的消息记录功能,两个地方需要修改,模型和form视图

在你需要消息记录的模型申明中,添加如下红色部分代码:

class TestModle(models.Model):
""" 模型名称 """
_name = 'test.test_model' # 定义 模型名(类名) 必写
_rec_name = 'name' # 定义 模型引用时 显示的默认字段 非必写
_description = 'test model' # 定义数据库中的表名 非必写
_inherit = ['mail.thread', 'ir.needaction_mixin'] # 集成消息模型 增加消息记录通知功能

在相应的form视图内部下方,增加如下红色代码:

<form>
....
省略一串代码
....
<div class="oe_chatter">
<field name="message_follower_ids"
widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>

然后在想要追踪的字段的模型定义中增加如下属性:

class TestModle(models.Model):
""" 模型名称 """
_name = 'test.test_model' # 定义 模型名(类名) 必写
_rec_name = 'name' # 定义 模型引用时 显示的默认字段 非必写
_description = 'test model' # 定义数据库中的表名 非必写
_inherit = ['mail.thread', 'ir.needaction_mixin'] # 集成消息模型 增加消息记录通知功能 name = fields.Char(string="Name",)
inout = fields.Selection(string="InOut", selection=[('I', u'进口'), ('E', u'出口'), ], track_visibility='always',)
contract_no = fields.Char(string="Contract No", track_visibility='onchange',)

上面的两种写法:track_visibility='always' 和 track_visibility='onchange'

修改完成之后,重启odoo服务,升级相应模块!对上述字段进行手动修改,保存的时候,验证效果!!!

实现效果:

感兴趣的小伙伴,可以参考:

https://www.jianshu.com/p/84c6518d7dbf

odoo开发笔记--字段追踪,消息通知机制的更多相关文章

  1. odoo开发笔记 -- 字段增加唯一约束

    前台违反约束效果: 后台模型中定义代码: name = fields.Char(string="Name", copy=False) # 流水号 _sql_constraints ...

  2. iOS开发-消息通知机制(NSNotification和NSNotificationCenter)

    iOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多,类之间的传值用到的比较多,不过委托相对来说只能是一对一,比如说页面A跳转到页面B,页面的B的值改变要映射到页 ...

  3. HTML 5的消息通知机制

    译文来源:http://www.ido321.com/1130.html 原文:HTML 5 Notification 译文:HTML 5 的消息通知机制 译者:dwqs HTML 5 已经被应用到W ...

  4. 杂谈:HTML 5的消息通知机制

    译文来源:http://www.ido321.com/1130.html 原文:HTML 5 Notification 译文:HTML 5 的消息通知机制 译者:dwqs watermark/2/te ...

  5. 消息通知机制(NSNotification和NSNotificationCenter)

    作者:FlyElephant 出处:http://www.cnblogs.com/xiaofeixiang iOS中委托模式和消息机制基本上开发中用到的比较多,一般最开始页面传值通过委托实现的比较多, ...

  6. odoo开发笔记 -- div标签代替odoo button写法

    odoo开发笔记 -- div标签代替odoo button写法 并调用自定义js <footer> <div id="confirm_request_cloud_repo ...

  7. odoo开发笔记 -- 搜索视图继承扩展

    odoo开发笔记 -- 搜索视图继承扩展

  8. odoo开发笔记 -- 后台日志输出及分析

    odoo开发笔记 -- 后台日志输出及分析 附:日志分析软件

  9. odoo开发笔记:Server+Action服务器动作自动触发执行

           Odoo的市场定位是SME(中小型企业),这个市场的ERP产品,多如牛毛,产品各具特色.不过,Odoo的自动化处理机制,可以睥睨天下,无人能及.包括一些大型国产软件,如用友.金蝶也不具备 ...

随机推荐

  1. Tomcat架构解析(一)-----Tomcat总体架构

    Tomcat是非常常用的应用服务器,了解Tomcat的总体架构以及实现细节,对于理解整个java web也是有非常大的帮助. 一.Server   1.最简单的服务器结构 最简单的服务器结构如图所示: ...

  2. java Concurrent包学习笔记(一):ExecutorService

    一.介绍 ExecutorService是java.util.concurrent包中的一个线程池实现接口.其有两个实现类: 1)ThreadPoolExecutor:普通线程池通过配置线程池大小,能 ...

  3. 点击文字弹出一个DIV层窗口代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  4. POJ 3110 Jenny's First Exam (贪心)

    题意:告诉你n 个科目的考试日期,在考试当天不能复习,每一个科目的最早复习时间不能早于考试时间的t天,每一天你可以复习完一科,也只能复习一科,求最晚的复习时间!. 析:由于题目给定的时间都在1900 ...

  5. js中如何将数据获得2位小数以及对数据进行千分位划分

    js中toFixed(n) 方法可把 数字四舍五入为指定小数位数n的数字,注意:这个方法只能对数据类型为Number的数据起作用,包括float,int等.例如:   123.12345.toFixe ...

  6. 20155205 《Java程序设计》实验四 Android程序设计

    20155205 <Java程序设计>实验四 Android程序设计 一.实验内容及步骤 (一) Android Stuidio的安装测试 参考<Java和Android开发学习指南 ...

  7. Visual C++实现局域网IP多播

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  8. (转)自己来控制EntityFramework4.1 Code-First,逐步消除EF之怪异现象

    转自:http://www.cnblogs.com/richwong/archive/2011/07/06/2098759.html 最近的项目开始使用EF4.1,拜读各路大侠文章数遍,满以为可以轻车 ...

  9. spark checkpoint详解

    checkpoint在spark中主要有两块应用:一块是在spark core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS ...

  10. hdu 4969 平面几何积分

    http://acm.hdu.edu.cn/showproblem.php?pid=4969 Guizeyanhua要去追一个女孩,女孩在以Guizeyanhua为圆心,半径为R的圆上匀速运动,女孩的 ...