Odoo安装教程6-创建新的插件模块第五讲
创建新的插件模块
一些 Odoo 模块创建新应用,而另一些则对已有应用添加功能或作出修改。虽然两者的技术组件基本相同,但应用会被预期包含一些特征性元素。我们创建的是一个图书应用,所以应包含这些元素,它们是:
⚫ 图标:用于在应用列表中展示
⚫ 顶级菜单项:其下放置所有的应用菜单项
⚫ 应用安全组: 通过权限访问仅对指定用户开放
添加图标(icon),仅需在模块目录下 static/description/子文件夹中放置 icon.png 文件,前面已经介绍过了。下面我们来添加应用顶级菜单。
添加应用顶级菜单项
我们创建的是一个新应用,因此应包含主菜单项, 在社区版本中,显示在左侧下拉菜单中,而在
企业版中,则作为附加图标显示在应用切换器主界面中。
菜单项是使用 XML 文件中添加的视图组件,通过创建 views/library_menu.xml 来定义菜单项:
<?xml version="1.0"?>
<odoo>
<!-- Library App Menu -->
<menuitem id="menu_library" name="Library" />
</odoo>
用户界面中的菜单项和操作均存储于数据表中,上面的代码是一个 Odoo 数据文件,描述了要载入 Odoo 数据库的记录。其中的元素是向 ir.ui.menu 模型写入记录的指示。 id 属性也称作XML ID,用于唯一标识每个数据元素,以供其它元素引用。例如在添加图书子菜单时,就需要引用顶级菜单的 XML ID,即 menu_library。 XML ID 是一个重要话题,将在本系列文章第五篇导入、导出以及模块数据中探讨。
此处添加的菜单项非常简单,仅用到了 name 属性。其它常用的属性这里没有使用,没有设置父菜单,因为这是一个顶级菜单。也没有设置 action,因菜单项本身并不做任何事,仅仅用于放置后面要创建的子菜单项。模块还不知道 XML 数据文件的存在,我们需要在__manifest__.py 中使用 data 属性来添加安装或更新时需要加载的模块列表以进行声明。在 manifest 文件的字典中加入:
'data': [
'views/library_menu.xml',
],
要向 Odoo 数据库中加载这些菜单设置,需要升级模块。此时还不会有什么显式的效果,因菜单项还不包含可操作子菜单,所以不会显示。在添加好子菜单及合适的访问权限时即可显示。
“ 小贴士: 菜单树中的项目仅在含有可见子菜单项时才会显示。底层包含窗口操作视图的菜单项仅当用户拥有该模型访问权限时才可见。 ”