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. 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别(转)

    出处:https://www.baidu.com/link?url=QjboallwNm_jxcL3fHG57wEakiBfAs_3-TChTGu1eBXstlHEsGBc-NDA7AKTqsiroB ...

  2. IntellJ IDEA2017 springboot2.0.2中读取配置

    IDEA 路径 src\main\resources\application.properties 配置文件名称为 application.properties 默认的位置在classpath根目录下 ...

  3. 简单MVC实现增删改查

    反射工具类RelfectionUtils package Utils; import java.lang.reflect.Field; import java.lang.reflect.Invocat ...

  4. 有趣的CSS3背景 斜条纹

    今天逛的时候发现了一个有趣的css3实现的背景效果,代码实现 .noaccess { position: absolute; width: 300px; height: 100px; z-index: ...

  5. Java理论学时第三节。课后作业。

    如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算? 运行结果. 根据我的总结,它们三个的优先级是:构造方法 > 字段初始值 > 初始化块. 当多个类之间有继承关系 ...

  6. Beta阶段第六篇Scrum冲刺博客-Day5

    1.站立式会议 提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 张晨晨:完善收藏功能 郭琪容:收藏功能的实现 吴玲:完 ...

  7. noip第15课作业

    1. 累加求和 给定n(1<=n<=100),用递归的方法计算1+2+3+4+5+......+(n-1)+n. 输入:一个大于等于1的整数. 输出:输出一个整数. [样例输入] 5 [样 ...

  8. java基础知识-数据类型及转换

    1.java中的常量大体分为两种: <1>字面量常量 <2>自定义常量 2.java中常量(字面量)的分类:<1>,整数常量:直接出现的整数<2>,小数 ...

  9. vdscode连接git服务器(以码云为例)

    准备工作:先下载并安装git客户端 1.在码云或者github上新建项目,获得新建项目的地址,得到一个类似:https://gitee.com/zhangshitongsky/vueTest.git ...

  10. JAVA的初始化顺序

    这里主要是介绍JAVA的类的初始化顺序,比较基础:主要是以例子演示为主: 例子一: 1 package com.cnblog.GDUTtiantian; 2 3 /** 4 * 5 * @author ...