第 2 章:一个新的应用

本章的目的是为创建一个完全新的 Odoo 模块奠定基础。我们将从零开始,仅包含让 Odoo 识别该模块所需的最基本内容。在后续章节中,我们将逐步添加功能,构建一个真实的业务案例。

房地产广告模块

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

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

列表视图 01

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

表单视图 01

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

表单视图 02

这里有一段快速视频,展示了该模块的工作流。

希望很快就能录制这段视频 :-)

准备插件目录

引用:有关此主题的文档可在 清单 中找到。

注解

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

新模块出现在列表中

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

一个模块必须至少包含 2 个文件:__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 中添加适当的键,以便当启用“Apps”筛选器时,该模块会显示出来。

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

一切顺利吗?如果没问题,那么让我们来 创建第一个模型