第 2 章:新建应用

本章旨在为创建一个全新的 Odoo 模块奠定基础。我们将从零开始,只保留让 Odoo 识别我们的模块所需的最少内容。在接下来的章节中,我们将逐步添加功能,以构建一个贴近实际的业务案例。

房地产广告模块

我们的新模块将涵盖一个非常具体的业务领域,因此不在标准模块集合中:房地产。值得注意的是,在开发新模块之前,最好先确认 Odoo 是否已经提供了应对该特定业务案例的方式。

下面是对包含一些广告的主列表视图的概览:

列表视图 01

表单视图的顶部区域汇总了房产的重要信息,例如名称、房产类型、邮政编码等。第一个标签页包含描述房产的信息:卧室、居住面积、车库、花园……

表单视图 01

第二个标签页列出该房产的报价。我们可以看到,潜在买家可以报出高于或低于预期售价的价格。是否接受报价由卖方决定。

表单视图 02

下面是一个展示该模块工作流程的简短视频。

希望这个视频很快就能录制完成 :-)

准备插件模块目录

参考:本主题相关的文档可在 清单文件 中找到。

注解

目标:本节的目标是让 Odoo 识别我们的新模块,目前它还是一个空壳。它将出现在应用列表中:

新模块出现在列表中

模块创建的第一步是创建其目录。在 tutorials 目录中,新增一个目录 estate。

一个模块至少必须包含 2 个文件:__manifest__.py 文件和 __init__.py 文件。__init__.py 文件目前可以保持为空,我们会在下一章回到它。另一方面,__manifest__.py 文件必须描述我们的模块,不能保持为空。它唯一必需的字段是 name,但通常还包含更多信息。

以 CRM 文件 为例。除了提供模块的描述信息(name、category、summary、website 等)之外,它还列出了模块的依赖(depends)。所谓依赖,是指 Odoo 框架会确保这些模块在我们的模块安装之前先被安装。此外,如果其中某个依赖被卸载,那么我们的模块以及 任何依赖它的其他模块也会被卸载。想一想你最喜欢的 Linux 发行版包管理器(apt、dnf、pacman 等):Odoo 的工作方式与此相同。

练习

创建所需的插件模块文件。

创建以下文件夹和文件:

  • /home/$USER/src/tutorials/estate/__init__.py

  • /home/$USER/src/tutorials/estate/__manifest__.py

__manifest__.py 文件应只定义我们模块的名称和依赖。目前唯一必需的框架模块是 base。

重启 Odoo 服务器并进入应用。点击更新应用列表,搜索 estate,然后……铛铛,你的模块出现了!没有出现?也许可以试着去掉默认的“应用”筛选器 ;-)

警告

请记得按上一章的说明启用 开发者模式。否则你将看不到 更新应用列表 按钮。

练习

将你的模块设为“应用”。

在你的 __manifest__.py 中添加相应的键,使模块在“应用”筛选器开启时出现。

你甚至可以安装该模块!但显然它只是一个空壳,因此不会出现任何菜单。

一切就绪?如果是,那就 创建我们的第一个模型 吧!