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']]}"/>
我正在使用 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']]}"/>