第 2 章:一个新应用

本章的目的是为创建一个全新的 Odoo 模块打好基础。我们将从零开始,只用让模块被 Odoo 识别所需的最少内容。在接下来的章节中,我们将逐步添加功能,构建一个贴近实际的业务场景。

房产广告模块

我们的新模块将覆盖一个非常特定的业务领域,因此不在标准模块之列:房产。值得注意的是,在开发新模块之前,良好的做法是先确认 Odoo 尚未提供能应对该特定业务需求的方案。

下面是包含若干广告的主列表视图概览:

列表视图 01

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

表单视图 01

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

表单视图 02

这里有一段展示该模块工作流程的简短视频。

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

准备插件目录

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

Note

目标 :本节的目标是让 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 的工作方式与此相同。

Exercise

创建所需的插件文件。

创建以下文件夹和文件:

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

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

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

重启 Odoo 服务器并前往“应用”。点击“更新应用列表”,搜索 estate……瞧,您的模块出现了!没有出现?也许试试移除默认的“应用”筛选器 ;-)

Warning

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

Exercise

将您的模块变为“应用”。

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

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

都完成了吗?如果完成了,那就让我们 创建我们的第一个模型 吧!