Odoo10状态栏不同状态添加对应颜色的实现方法咨询
在Odoo 10状态栏中为不同状态设置自定义颜色
嘿,我来帮你搞定Odoo 10里状态栏添加颜色的需求!旧版OpenERP里直接用statubar_colors参数的方式在Odoo 10里已经不适用了,不过我们有更简洁的实现方式,下面分步骤给你说明:
步骤1:在视图中正确定义状态栏字段
首先在你的表单视图里,确保状态字段使用statusbar widget,并指定要显示的状态(可选,但能更精准控制显示项):
<field name="state" widget="statusbar" statusbar_visible="draft,in_progress,cancel"/>
这里的statusbar_visible参数列出了你想显示的状态值(比如draft、in_progress、cancel),Odoo会为每个状态项生成一个带有特定类名的元素——类名格式为o_statusbar_status_<状态值>,比如草稿状态对应的类是o_statusbar_status_draft。
步骤2:添加自定义CSS样式
接下来创建自定义CSS文件来为不同状态设置颜色:
- 在你的模块目录下创建
static/src/css文件夹,然后新建statusbar_colors.css文件,内容如下:
/* 草稿状态 - 蓝色 */ .o_statusbar_status_draft { background-color: #3498db !important; color: white !important; } /* 进行中状态 - 绿色 */ .o_statusbar_status_in_progress { background-color: #2ecc71 !important; color: white !important; } /* 取消状态 - 红色 */ .o_statusbar_status_cancel { background-color: #e74c3c !important; color: white !important; }
你可以根据需求替换颜色值(支持十六进制、RGB或颜色名称),!important是为了覆盖Odoo默认的样式。
步骤3:在模块配置中引入CSS文件
最后需要把这个CSS文件添加到模块的资源清单里,让Odoo加载它。打开模块的__manifest__.py文件,找到assets节点(如果没有就新增),添加如下内容:
'assets': { 'web.assets_backend': [ 'your_module_name/static/src/css/statusbar_colors.css', ], },
记得把your_module_name替换成你实际的模块名称。
验证效果
完成以上步骤后,升级你的模块,刷新页面就能看到状态栏的状态项已经变成你设置的颜色了!如果样式没生效,可以用浏览器的开发者工具检查元素类名是否匹配,或者清除浏览器缓存后重试。
内容的提问来源于stack exchange,提问作者Thayif kabir
相关产品推荐
相关产品推荐

