XML Odoo 字段条件颜色格式

XML Odoo field conditional color formatting

我正在使用 Odoo 和工作室。

我想使用 XML 根据所选值格式化选择字段文本。

这是我已经尝试过但完全没有效果的方法:

<field name="my_status" string="Status" colors="orange:my_status == 'negotiation';green:my_status == 'signed';purple:my_status == 'internal'"/>

我也试过:

<field name="my_status" string="Status" decoration-success="my_status == 'signed'" decoration-danger="my_status == 'negociation'" decoration-muted="my_status == 'internal'"/>

你知道我缺少什么才能让它工作吗?

编辑:我发现了这个,我想我不能对任何字段进行颜色格式化? https://github.com/odoo/odoo/blob/12.0/odoo/addons/base/rng/common.rng#L206

如果你想这样做,你需要 css select 或者。当你在浏览器中查看 Element 时 你有两种不同的表现形式。

在视图模式下,select离子场变成了一个简单的跨度:

<span name="priority" class="o_field_widget">Non urgent</span>

在编辑模式下,selection 字段是 HTML 输入:

<select class="o_input o_field_widget" name="priority" id="o_field_input_229">
    <option value="false"></option>
    <option value="0">Non urgent</option>
    <option value="1">Normale</option>
    <option value="2">Urgent</option>
    <option value="3">Très urgent</option>
</select>

仅使用 CSS 无法 select 基于其内部 HTML 的元素。 正如您所看到的,选项值随着语言的变化而变化 改变所以即使你做了 select 或喜欢 (Jquery)

         $(".o_field_widget[name='priority']:contains('Non urgent')")

当法国用户访问该页面时发生了什么?!!!

一种典型的做法是在 Odoo 中更改 selection 小部件的行为(这不是一件容易的事)。 如果您真的需要这个,请先尝试在 Odoo 商店中找到任何应​​用程序,否则我看不到其他方法。

我找到了解决方法:

<field name="my_status" string="Status" style="color: red;" attrs="{'invisible': ['|',['my_status','=','signed'],['my_status','=','internal']]}"/>
<field name="my_status" string="Status" style="color: green;" attrs="{'invisible': ['|',['my_status','=','negotiation'],['my_status','=','internal']]}"/>
<field name="my_status" string="Status" style="color: purple;" attrs="{'invisible': ['|',['my_status','=','signed'],['my_status','=','negotiation']]}"/>