第 2 章:一个新应用

本章的目的是为创建一个全新的 Odoo 模块奠定基础。我们将从零开始,完成让 Odoo 识别模块所需的最低要求。在接下来的章节中,我们将逐步添加功能,以构建一个现实的业务案例。

房地产广告模块

我们的新模块将涵盖一个非常特定的业务领域,因此并未包含在标准模块集中:estate。需要注意的是,在开发新模块之前,最好先确认 Odoo 是否已经提供了满足该特定业务需求的方法。

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

列表视图 01

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

表单视图 01

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

表单视图 02

以下是一个展示该模块工作流程的快速视频。

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

准备插件目录

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

注解

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

新模块出现在列表中

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

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

可以参考 CRM 文件 作为示例。除了提供模块的描述(namecategorysummarywebsite 等),它还列出了依赖项(depends)。依赖项意味着 Odoo 框架会确保这些模块在我们的模块安装之前已安装。此外,如果其中一个依赖项被卸载,那么我们的模块以及 所有依赖它的其他模块也会被卸载。想想你最喜欢的 Linux 发行版包管理器(aptdnfpacman 等):Odoo 的工作方式与此类似。

Exercise

创建所需的插件文件。

创建以下文件夹和文件:

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

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

__manifest__.py 文件应仅定义模块的名称和依赖项。目前唯一必要的框架模块是 base

重新启动 Odoo 服务器并进入应用页面。点击更新应用列表,搜索 estate,然后……哇哦,你的模块出现了!没出现?可能需要尝试移除默认的“应用”过滤器 ;-)

警告

记得启用 开发者模式 ,正如前一章所述。否则你将看不到 更新应用列表 按钮。

Exercise

将您的模块变成一个“应用”。

在您的 __manifest__.py 中添加适当的键,以便在启用“应用”过滤器时显示该模块。

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

一切顺利吗?如果是的话,那就让我们 创建我们的第一个模型 吧!