将颜色添加到odoo10的状态栏中

时间:2019-08-30 12:23:58

标签: colors odoo statusbar odoo-10

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

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

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

3 个答案:

答案 0 :(得分:4)

您有两种解决方案:

  1. 如果仅一个窗体视图需要这种行为,则很简单:

只需添加style标记即可击败css selector生成的Odoo

        <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 selector,因为它是在使用过的Odoo selector之后加载的,请注意,我的状态裸露按钮具有.disabled类,因为我认为它是readonly您必须更改clickabe= 'True'表示它不是只读的。

  1. 如果要在此处为​​所有模型使用此功能,则需要使用css file并将其添加到asset_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以选择 right元素, 例如,如果您只想在状态blue"new"时使状态栏颜色为selected,那么您会很幸运 Odoo会在属性selected中显示值data-value,该值 .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; } 不会因翻译而改变。

btn-primary

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

    选定的
  • 状态为btn-default类,其余的为disabled="disabled"
  • 只读具有属性disabled和类record

只是为了证明这项工作,这是我所拥有的屏幕快照,您可能会有一些副作用,即当您在popup中打开一些form且此status仍显示在网页上,如果记录中有widget裸露的style tag,也会影响显示的记录,因为form将在从网页中删除了<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" .....> 视图

screen shot

编辑

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

如果已选择,则颜色将从新变为蓝色,而对于已选中的绿色,则变为有效

data-value

这与code1选择字段有关,希望您能理解。这比处理javascript容易。

答案 1 :(得分:0)

此功能很久以前已从Odoo中删除。

https://github.com/odoo/odoo/issues/5987

https://github.com/odoo/odoo/pull/11199

如果需要添加此功能,则必须为其创建一个新的小部件。

答案 2 :(得分:0)

 inherit_id="web.assets_backend"

根据需要添加样式,也可以在CSS中提供样式