【问题标题】:XML Odoo field conditional color formattingXML Odoo 字段条件颜色格式
【发布时间】:2019-06-10 10:20:45
【问题描述】:

我正在与 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

【问题讨论】:

    标签: xml odoo odoo-12


    【解决方案1】:

    如果你想这样做,你需要 css 选择器。当您在浏览器中调查 Element 你有两种不同的表现形式。

    在视图模式下,选择字段变成了一个简单的跨度:

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

    在编辑模式下,选择字段是 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 无法根据其内部 HTML 选择元素。 正如你所看到的,选项值随着语言的变化而变化 即使您使用(Jquery)之类的选择器也会发生变化

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

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

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

    【讨论】:

    • 感谢您的回答。那么 XML 呢?我不能在 &lt;tree&gt; 视图中使用 XML 作为 decoration-success 吗?
    • 我们无法使用 CSS 选择它,但我们可以根据值隐藏字段,并为每个字段设置颜色样式。我同意这很费力
    【解决方案2】:

    我找到了解决方法:

    <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 视图中多次声明同一个字段?是的,这个字段是可编辑的,它也是一个选择字段。我希望不要有任何副作用,如果有我会回到这里!
    • 你应该有,Odoo 总是对最后一个字段的值进行拍照,我不知道这是否会给你带来问题,是的,这就是我想说的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2020-12-09
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多