gpt4 book ai didi

colors - 在 odoo 10 中向状态栏添加颜色

转载 作者:行者123 更新时间:2023-12-02 04:49:46 27 4
gpt4 key购买 nike

需要在 odoo10 可用的 openerp 版本中添加状态栏颜色例如:<field name = 'state' widget=statusbar clickabe= 'True' statubar_colors='{"new": "blue"}'>

如何在odoo10中的状态栏中添加颜色

状态栏中不同的状态需要不同的颜色例如:蓝色表示草稿,绿色表示进度,红色表示取消

最佳答案

有两种解决方案可以满足您的要求:

  1. 如果您只需要一个表单 View 的这种行为,就很简单:

只需添加style标签即可击败Odoo生成的css选择器

        <style>
.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled {
background: yellow;
}
.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after {
border-left-color: yellow;
}
</style>
...
...
<field name ="state" widget="statusbar">

这里我使用了相同的css选择器,因为它是在Odoo选择器之后加载的,它是使用的,请注意我的状态裸按钮有.disabled 类,因为它是 readonly 我认为你必须更改 clickabe= 'True' 意味着它不是只读的。

  • 如果您想在此处为所有模型使用此功能,您需要使用 css 文件 并将其添加到 assets_backend 模板中,确保您的选择器优于 Odoo 选择器。
  •    <template id="assets_backend" name="backend" inherit_id="web.assets_backend">
    <xpath expr="." position="inside">
    <link rel="stylesheet" href="/your_addon_name/static/src/css/your_css_file_name.css"/>
    </xpath>
    </template>

    现在我不知道你想如何准确地改变颜色在这里,你需要处理CSS来选择正确的元素,例如,如果您想仅在“new”值为选择时使状态栏颜色为蓝色,那么您很幸运Odoo 在属性 data-value 中显示 selected 值,该值不会因翻译而改变。

       .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="new"] {
    background: blue;
    }
    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="new"]::after {
    border-left-color: blue;
    }

    这是在 Odoo 11 中,当我检查该元素时,我注意到的是:

    • 所选状态具有 btn-primary 类,其余具有 btn-default
    • readonly 具有属性 disabled="disabled" 和类 disabled

    只是为了表明这项工作这是我所拥有的屏幕截图,您可能会产生一些副作用,那就是当您在 popup 中打开一些record并且此form仍然显示在网页中,如果它有一个statuswidget,这也会影响显示的记录,因为表单 View 从网页中删除时,>样式标记将被删除

    screen shot

    编辑:

    假设您的选择有两个值:新的、有效的

    如果选择,这将新颜色为蓝色,并且对选择的绿色有效

    <style>

    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="new"] {
    background: blue;
    }
    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="new"]::after {
    border-left-color: blue;
    }

    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="progress"] {
    background: blue;
    }
    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="progress"]::after {
    border-left-color: blue;
    }

    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="cancel"] {
    background: red;
    }
    .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled[data-value="cancel"]::after {
    border-left-color: red;
    }
    </style>
    ...
    ...
    ...
    <field name="state" .....>

    这都是关于通过数据值选择字段希望你明白了。这比处理 JavaScript 更容易。

    关于colors - 在 odoo 10 中向状态栏添加颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57726716/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com