如何在 odoo 9 中放置菜单图标?
How to put a menu Icon in odoo 9?
我想在 odoo 9 中为 hr_attendance 插件添加一个菜单图标。
我将解释我所做的步骤:
创建 hr_attendance_extend 并放入 addon_extra
导入原始插件。这是“init.py”:
import hr_attendance
创建 css 并放置图标。这是文件的一部分 "static/src/css/slider.css":
...
.oe_systray .oe_attendance_signout {
float:right;
height: 32px;
width: 32px;
background: url(/hr_attendance_extend/static/src/img/emp-in32.png);
cursor: pointer;
}
...
Link 带有插件的文件。这是文件 ''views/hr_attendance.xml":
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_backend" name="hr_attendance assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/hr_attendance_extend/static/src/css/slider.css"/>
</xpath>
</template>
</data>
</openerp>
将新文件放入新插件中。这是文件“openerp.py”的一部分:
{
...
'depends': ['hr_attendance'],
'data': [
'hr_attendance.xml',
'views/hr_attendance.xml',
],
'demo': [],
'test': [],
'installable': True,
'auto_install': False,
#web
'qweb' : ["static/src/xml/attendance.xml"],
}
放置菜单容器。这是文件 ''static/src/xml/attendance.xml":
<template>
<t t-name="AttendanceSlider">
<li class="oe_attendance_status oe_attendance_nosigned" data-toggle="tooltip">
<div class="oe_attendance_signout"></div>
</li>
</t>
</template>
在原来的插件(hr_attendance)中有一个将图标推送到菜单的功能(我认为)。
在文件 static/src/js/attendance.js 中,这是有问题的行:
SystrayMenu.Items.push(AttendanceSlider);
就这些了。
不知道是不是漏了什么。图标的代码出现在html,但是有'style="display: none"'
编辑:
如果我更改 css 文件,将 属性 "display: block !important" 放在菜单中,则该图标会出现在菜单中,但该修复不是正确的解决方案。
我找到了与此处共享相同解决方案的另一个问题的解决方案。
这些是新用户的步骤:
以管理员身份登录
员工 > 员工 > 创建按钮(填写姓名)
Select "HR Settings" 选项卡 > 相关用户 -> 创建和编辑(填写姓名和电子邮件)。
保存用户和保存员工。
进入开发者模式(用户菜单 > 关于 > 激活开发者模式)
设置 > 用户 > Select 新创建的用户 > 编辑 > 标记选项 "Attendances"
保存用户。
现在,图标出现了。
我想在 odoo 9 中为 hr_attendance 插件添加一个菜单图标。
我将解释我所做的步骤:
创建 hr_attendance_extend 并放入 addon_extra
导入原始插件。这是“init.py”:
import hr_attendance
创建 css 并放置图标。这是文件的一部分 "static/src/css/slider.css":
... .oe_systray .oe_attendance_signout { float:right; height: 32px; width: 32px; background: url(/hr_attendance_extend/static/src/img/emp-in32.png); cursor: pointer; } ...
Link 带有插件的文件。这是文件 ''views/hr_attendance.xml":
<?xml version="1.0" encoding="utf-8"?> <openerp> <data> <template id="assets_backend" name="hr_attendance assets" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <link rel="stylesheet" href="/hr_attendance_extend/static/src/css/slider.css"/> </xpath> </template> </data> </openerp>
将新文件放入新插件中。这是文件“openerp.py”的一部分:
{ ... 'depends': ['hr_attendance'], 'data': [ 'hr_attendance.xml', 'views/hr_attendance.xml', ], 'demo': [], 'test': [], 'installable': True, 'auto_install': False, #web 'qweb' : ["static/src/xml/attendance.xml"], }
放置菜单容器。这是文件 ''static/src/xml/attendance.xml":
<template> <t t-name="AttendanceSlider"> <li class="oe_attendance_status oe_attendance_nosigned" data-toggle="tooltip"> <div class="oe_attendance_signout"></div> </li> </t> </template>
在原来的插件(hr_attendance)中有一个将图标推送到菜单的功能(我认为)。
在文件 static/src/js/attendance.js 中,这是有问题的行:
SystrayMenu.Items.push(AttendanceSlider);
就这些了。
不知道是不是漏了什么。图标的代码出现在html,但是有'style="display: none"'
编辑: 如果我更改 css 文件,将 属性 "display: block !important" 放在菜单中,则该图标会出现在菜单中,但该修复不是正确的解决方案。
我找到了与此处共享相同解决方案的另一个问题的解决方案。
这些是新用户的步骤:
以管理员身份登录
员工 > 员工 > 创建按钮(填写姓名)
Select "HR Settings" 选项卡 > 相关用户 -> 创建和编辑(填写姓名和电子邮件)。
保存用户和保存员工。
进入开发者模式(用户菜单 > 关于 > 激活开发者模式)
设置 > 用户 > Select 新创建的用户 > 编辑 > 标记选项 "Attendances"
保存用户。
现在,图标出现了。