我尝试将图标设置为menuitem,因此我发现支持属性图标,但是当我更改其值时没有发生变化。
我想知道odoo v7 / 8中的menuitem是否仍然支持它。如果没有,如何将图标添加到菜单项?
修改
我尝试在odoo中自定义菜单视图。所以我覆盖了在" webClient_templates.xml"中呈现菜单的模板。来自这样的网络模块:
<template id="my_menu_link" inherit_id="web.menu_link">
<span position="replace">
<span class="oe_menu_text">
<i class="fa fa-check"></i>
<t t-esc="menu['name']"/>
</span>
</span>
</template>
可能,所有菜单项都会从font-awesome lib中获得相同的图标(即fa-check)。 现在,我尝试为每个菜单项添加一个特定的图标,我可以在menuitem的xml描述中以某种方式将其定义为一种属性或其他任何东西,并像这样检索它:
<i t-attrs-class="menu['icon']"></i>
我尝试使用menuitem的图标属性,即使它已被弃用,但菜单[&#39;图标&#39;]在模板级别无法识别。
请提出任何建议?
答案 0 :(得分:0)
不推荐在菜单项中显示图标的AFAIK,但在Web客户端上不起作用。可能需要为Web客户端创建一个模块,以便使用该功能扩展它。
答案 1 :(得分:0)
我现在正在使用odoo v12,并且ir.ui.menu模型上还有一个未使用的图标字段。
我设法在后端菜单上显示图标,这与您的代码有所不同:
web_icon
,它可能特定于v10 +,我没有v8来验证这一点。t-att-<name>
,而不是t-attrs-<name>
web/static/src/xml/menu.xml
中找到<i>
标记:
<t t-name="Menu.link">
<span><i t-att-class="menu.web_icon"></i> <t t-esc="menu.name"/></span>
<span><i t-att-class="menu.web_icon"></i> <t t-esc="menu.name"/></span>
<t t-name="Menu.sections">
<i t-att-class="second_level_menu.web_icon"></i> <t t-esc="second_level_menu.name"/>
要在菜单的图标字段中设置的数据是整个字体真棒的CSS类:
fa fa-check
如果添加更多图标集,这很好,您无需再次修改模板。
但是,如果您想强制使用超棒的字体,或者想使用另一个像超棒的实体的图标集(使用fas
类),则可以在模板中使用以下标记:
<i t-attf-class="fas fa-#{menu.web_icon}"></i>
(请注意t-attf-<name>
使用“属性功能”)
因此该字段中的数据将仅为check
...
最后,最好的办法是创建一个模块来继承模板,并进行修改以防止像我一样直接修改它。
并添加更多CSS样式以正确对齐图标和文本(此处图标的大小不同)。