使用docker安装开发环境,再之前的文章中已经讲过了。
下面正式进入odoo的开发之旅。
本章的目的是为创建一个全新的Odoo模块奠定基础。我们将从头开始,以最小的需求让我们的模块被Odoo识别。在接下来的章节中,我们将逐步添加功能,构建一个现实的商业案例。
房地产广告模块
我们的新模块将覆盖一个非常具体的商业领域,因此不包括在标准模块集合中:房地产。值得注意的是,在开发新模块之前,验证Odoo是否已经提供了解决特定商业案例的方法是一个好习惯。
以下是包含一些广告的主列表视图的概览:
表格视图顶部区域汇总了属性的重要信息,如名称、房产类型、邮编等。第一个选项卡包含描述房产的信息:卧室、居住面积、车库、花园......
第二个选项卡列出了该房产的出价。在这里我们可以看到,潜在买家可以提出高于或低于预期售价的报价。是否接受报价取决于卖方。
以上是插件的概览,下面正式进入插件的开发
准备插件目录
模块创建的第一步是创建其目录。在addon目录中,添加一个新的文件夹estate。
一个模块必须包含至少2个文件:manifest.py文件和__init__.py文件。现在,init.py文件可以保持空白,我们将在下一章回到这个问题。另一方面,manifest.py文件必须描述我们的模块,不能保持空白。它唯一要求的字段是名称,但它通常包含更多信息。
以CRM文件为例。除了提供模块的描述(名称、类别、摘要、网站...)外,它还列出了其依赖项(depends)。依赖项意味着Odoo框架将确保这些模块在我们的模块安装之前被安装。此外,如果这些依赖项之一被卸载,那么我们的模块和任何依赖于它的其他模块也将被卸载。想想你最喜欢的Linux发行版包管理器(apt、dnf、pacman...):Odoo的工作方式相同。
manifest.py文件应该只定义我们模块的名称和依赖项。现在唯一必需的框架模块是base。
一个完整的manifest.py文件看起来是下面这样(不用担心看不懂,后面的教程会慢慢讲解,先了解一下就行了)
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'CRM',
'version': '1.2',
'category': 'Sales/CRM',
'sequence': 15,
'summary': 'Track leads and close opportunities',
'description': "",
'website': 'https://www.odoo.com/page/crm',
'depends': [
'base_setup',
'sales_team',
'mail',
'calendar',
'resource',
'fetchmail',
'utm',
'web_tour',
'contacts',
'digest',
'phone_validation',
],
'data': [
'security/crm_security.xml',
'security/ir.model.access.csv',
'data/crm_lead_prediction_data.xml',
'data/crm_lost_reason_data.xml',
'data/crm_stage_data.xml',
'data/crm_team_data.xml',
'data/digest_data.xml',
'data/mail_data.xml',
'data/crm_recurring_plan_data.xml',
'wizard/crm_lead_lost_views.xml',
'wizard/crm_lead_to_opportunity_views.xml',
'wizard/crm_lead_to_opportunity_mass_views.xml',
'wizard/crm_merge_opportunities_views.xml',
'views/assets.xml',
'views/calendar_views.xml',
'views/crm_recurring_plan_views.xml',
'views/crm_menu_views.xml',
'views/crm_lost_reason_views.xml',
'views/crm_stage_views.xml',
'views/crm_lead_views.xml',
'views/digest_views.xml',
'views/mail_activity_views.xml',
'views/res_config_settings_views.xml',
'views/res_partner_views.xml',
'views/utm_campaign_views.xml',
'report/crm_activity_report_views.xml',
'report/crm_opportunity_report_views.xml',
'views/crm_team_views.xml',
],
'demo': [
'data/crm_team_demo.xml',
'data/mail_activity_demo.xml',
'data/crm_lead_demo.xml',
],
'css': ['static/src/css/crm.css'],
'installable': True,
'application': True,
'auto_install': False
}
重启Odoo服务器,进入Apps。点击更新应用列表,搜索estate然后……,你的模块出现了!没有出现吗?也许尝试移除默认的‘Apps’过滤器;-)
创建完manifest.py文件和__init__.py文件后将会看到如图所示的模块:
提示:
记得启用开发者模式,如前一章所解释的。否则你将看不到更新应用列表按钮。
很棒!你已经成功了第一步!
上一篇文章 odoo17开发入门教程(1)了解架构