Odoo根据优先级ID修改看板视图对应字段的文本颜色
Odoo看板视图priority_id动态变色实现方法
你可以通过Odoo QWeb模板的动态样式绑定属性t-attf-style实现取值变化时自动修改文本颜色,以下是具体修改方案:
修改后的完整视图代码
<record id="hr_job_views_kanban_add_endorsed" model="ir.ui.view"> <field name="name">hr.job.views.kanban</field> <field name="model">hr.job</field> <field name="inherit_id" ref="hr_recruitment.view_hr_job_kanban"/> <field name="arch" type="xml"> <xpath expr="//div/t[@t-esc='record.name.value']" position="replace"> <t t-esc="record.name.value"/> (<field name="num_of_endorsed"/>) </xpath> <xpath expr="//div[@class='o_primary']" position="after"> <b><p style="font-size: 11px;">特定岗位:<field name="specific_job_id"/></p></b> <b><p style="font-size: 11px;">职位类别:<field name="tag_id"/></p></b> <!-- 优先级字段加动态颜色 --> <b> <p style="font-size: 11px;" t-attf-style="color: #{ record.priority_id.raw_value == 1 ? 'red' : record.priority_id.raw_value == 2 ? 'orange' : 'green' };" > 优先级:<field name="priority_id"/> </p> </b> </xpath> </field> </record>
代码说明
- 用
t-attf-style属性动态绑定文本颜色,逻辑写在#{}内部,支持三元表达式判断 record.priority_id.raw_value取的是priority_id关联记录的主键ID,你可以根据你系统内实际的优先级ID、优先级名称调整判断条件和对应颜色- 如果只需要修改优先级字段值的颜色,不需要修改前面的「优先级:」标签颜色,可以把动态样式绑定到包裹
<field name="priority_id"/>的span标签上即可,示例如下:
<b> <p style="font-size: 11px;"> 优先级: <span t-attf-style="color: #{record.priority_id.raw_value == 1 ? 'red' : record.priority_id.raw_value == 2 ? 'orange' : 'green'};"> <field name="priority_id"/> </span> </p> </b>
- 颜色支持传入十六进制颜色码(比如
#ff4d4f)、rgb值等标准CSS颜色写法
内容的提问来源于stack exchange,提问作者J.Nel
相关产品推荐
相关产品推荐

