Chapter 2: A New Application

本章的目的是为创建一个全新的Odoo模块打下基础。我们将从零开始,最少的内容使我们的模块被Odoo识别。在接下来的章节中,我们将逐步添加功能,构建一个现实的业务案例。

房地产广告模块

我们的新模块将涵盖一个非常特定的业务领域,因此不包括在标准模块集中:房地产。值得注意的是,在开发新模块之前,最好验证Odoo是否已经提供了回答特定业务案例的方法。

这是包含一些广告的主列表视图的概述:

列表视图 01

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

表单视图 01

第二个选项卡列出了该房产的报价。我们可以在这里看到潜在买家可以在预期售价之上或之下提出报价。卖方有权接受报价。

表单视图 02

这里有一个快速视频展示模块的工作流程。

希望这个视频很快就会录制出来 :-)

准备插件目录

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

注解

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

新模块出现在列表中

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

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

Take a look at the CRM file as an example. In addition to providing the description of the module (name, category, summary, website…), it lists its dependencies (depends). A dependency means that the Odoo framework will ensure that these modules are installed before our module is installed. Moreover, if one of these dependencies is uninstalled, then our module and any other that depends on it will also be uninstalled. Think about your favorite Linux distribution package manager (apt, dnf, pacman…): Odoo works in the same way.

Exercise

创建所需的插件文件。

创建以下文件夹和文件:

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

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

The __manifest__.py file should only define the name and the dependencies of our modules. The only necessary framework module for now is base.

Restart the Odoo server and go to Apps. Click on Update Apps List, search for estate and… tadaaa, your module appears! Did it not appear? Maybe try removing the default ‘Apps’ filter ;-)

警告

记得在前一章节中解释的时候启用 开发者模式。否则你将看不到 更新应用列表 按钮。

Exercise

将您的模块变成一个’应用程序’。

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

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

All good? If yes, then let’s create our first model!