ODOOXML条件格式文本

ODOOXML条件格式文本,xml,text,format,conditional-statements,odoo,Xml,Text,Format,Conditional Statements,Odoo,我正在尝试使用studio应用程序编辑Odoo上的xml代码。我想根据单元格的值设置文本颜色的格式-红色表示某些值,绿色表示其他值 有人能帮忙吗 我用上一个话题的答案作为指导。 我希望看到“Approved”和“Approved Unseen”为绿色,其他3个选项为红色 我当前的代码是这样的: -如果该值为“已批准”或“已批准未查看”,则其工作正常并显示绿色字段。红色区域是看不见的 如果该值为“等待批准”或“新建”或“拒绝”,则该值无法正常工作。它在表单视图上显示字段和值两次。一个字段是

我正在尝试使用studio应用程序编辑Odoo上的xml代码。我想根据单元格的值设置文本颜色的格式-红色表示某些值,绿色表示其他值

有人能帮忙吗

我用上一个话题的答案作为指导。


我希望看到“Approved”和“Approved Unseen”为绿色,其他3个选项为红色

我当前的代码是这样的: -如果该值为“已批准”或“已批准未查看”,则其工作正常并显示绿色字段。红色区域是看不见的

  • 如果该值为“等待批准”或“新建”或“拒绝”,则该值无法正常工作。它在表单视图上显示字段和值两次。一个字段是红色的,另一个是绿色的。它不会因为某种原因而使绿地隐形

更好地使用域有助于:

<field name="x_studio_mr_approval" string="MR Approval (test)" style="color: red;" attrs="{'invisible': [('x_studio_mr_approval','in',['Approved','Approved Unseen'])]}"/>
<field name="x_studio_mr_approval" string="MR Approval (test)" style="color: green;" attrs="{'invisible': ['!',('x_studio_mr_approval','in',['Approved','Approved Unseen'])]}"/>


作为参考,请阅读另一种做法是使用如下内容为该特定字段生成小部件

<field name="x_studio_mr_approval" string="MR Approval (test)" widget="my_widget"/>
不要忘记将JS集成到您的资产中

<template id="assets_backend" inherit_id="web.assets_backend">
    <xpath expr=".">
       <script type="text/javascript" src="demo_erp_event/static/src/js/MYJS.js"/>
    </xpath>
</template>


感谢您的帮助,该链接也很有用。您的代码给了我一个错误-它缺少一个括号,但我添加了这个括号,它工作得很好:)“code”“code”将同一个字段放两次是个坏主意,如果它是计算的,则没有问题,因为它将始终在服务器端计算,但如果不是,odoo将始终取其中一个值。对于缺少的括号,非常抱歉。已经修好了,谢谢你的详细回复。这个解决方案比另一个人建议的更复杂,但我很感激你在这方面所做的工作,我会记住这一点,以备将来:)@Alexandre,我也更喜欢你的答案。谢谢分享。
odoo.define('widget_colored', function (require) {
    "use strict";

    var registry = require('web.field_registry');
    var basic_fields = require('web.basic_fields');
    var InputField = basic_fields.InputField;

    var FieldColored = InputField.extend({
        _render: function () {
            this.$el.html(this._formatValue(this.value));
            if (this.value === 'Approved') {
                this.$el[0].className = this.$el[0].className + ' font-weight-bold'; // Using class
            }
            ...
        },
    });

    registry.add('my_widget', FieldColored);
});
<template id="assets_backend" inherit_id="web.assets_backend">
    <xpath expr=".">
       <script type="text/javascript" src="demo_erp_event/static/src/js/MYJS.js"/>
    </xpath>
</template>