odoo的oca组织开发了很多开源的模块,有很多有趣实用的功能,今天介绍一下web_tree_dynamic_colored_field
利用这个模块,可以让单元格根据字段的值不同,显示不同的颜色,对用颜色区分状态很实用,虽然odoo自带了这个功能,但是oca开发的这个模块,更灵活,颜色支持也更多,下面展示一下使用方式
1. 安装oca的字段颜色模块,没有下载这个模块的朋友我把模块文件上传在我的博客里,大家自己去下载一下
2. 定义需要使用单元格颜色的模型列表视图
<odoo>
<data>
<record model="ir.ui.view" id="视图id">
<field name="name">视图名</field>
<field name="model">模型的_name</field>
<field name="arch" type="xml">
<tree default_order="id desc">
<field name="field_1"/>
<field name="field_2"/>
<field name="field_3"/>
<field name="field_4"/>
<field name="field_5"/>
</tree>
</field>
</record>
</data>
</odoo>
2. 继承刚才定义的列表视图,修改需要使用颜色模块的字段的属性
<record id="视图id_inherit" model="ir.ui.view">
<field name="model">模型的_name属性</field>
<field name="inherit_id" ref="要继承的视图id"/>
<field name="arch" type="xml">
<field name="field_5(要添加颜色的字段)" position="attributes">
<attribute name="options">{
"bg_color": "#FF6666: field_5 == 'no'; #FFCC99: field_5== 'part';#99CCFF: field_5== 'all'",
}
</attribute>
</field>
</field>
</record>
注意: 必须要先定义列表视图,在继承定义的列表视图,修改要使用颜色的字段的属性,不能直接在原列表视图上添加,否则是不生效的,可能还会报错,其中原因没有去深究,有兴趣的小伙伴可以去探究一下,写法看着也有点奇怪,就忽略吧 哈哈哈~
在说一下颜色的写法:
"bg_color": "颜色: 条件; 颜色:条件"
3. 下面展示一下效果, field_5字段下面的单元格颜色就会根据field_5的值显示不同颜色了
除了bg_color之外,还有fg_color和color_field在模块的readme文件中都oca都给你列子了 感兴趣可以去看一下