Odoo是一个强大的商业应用开源平台。在此基础上,构建了一套紧密集成的应用程序,涵盖了从CRM到销售到股票和会计的所有业务领域。Odoo有一个动态和不断增长的社区,不断增加功能、连接器和其他商业应用。
Odoo 10开发要点提供了一个逐步指导Odoo开发的指南,让读者能够快速的爬上学习曲线,并在Odoo应用平台上变得富有成效。
前两章的目的是让读者熟悉Odoo,学习建立开发环境的基本技术,熟悉模块开发方法和工作流。
以下各章节详细解释了Odoo addon模块开发所需的关键开发主题,如继承和扩展、数据文件、模型、视图、业务逻辑等等。
最后,最后一章解释了在部署Odoo实例时应该考虑什么。
这书的章节大纲
第1章,开始了Odoo开发,从开发环境的设置开始,从源代码安装Odoo,并学习如何管理Odoo服务器实例。
第2章,构建您的第一个Odoo应用程序,指导我们创建第一个Odoo模块,涵盖涉及的所有不同层:模型、视图和业务逻辑。
第3章,继承——扩展现有的应用程序,解释现有的继承机制,以及如何使用它们创建扩展模块,在其他现有模块上添加或修改功能。
第4章,模块数据,包括最常用的Odoo数据文件格式(XML和CSV),外部标识符概念,以及如何在模块和数据导入/导出中使用数据文件。
第5章,模型构建应用程序数据,详细讨论模型层,使用模型和字段的类型,包括关系和计算字段。
第6章,视图——设计用户界面,包括视图层,详细解释了几种类型的视图以及可以用来创建动态和直观的用户界面的所有元素。
第7章,ORM应用程序逻辑——支持业务流程,在服务器端引入编程业务逻辑,探索ORM概念和特性,并解释如何使用向导进行更复杂的用户交互。
第8章,编写测试和调试代码,讨论如何向addon模块添加自动化测试,以及调试模块业务逻辑的技术。
第9章,QWeb和看板视图,通过Odoo QWeb模板,使用它创建丰富的看板。
第10章,创建QWeb报告,讨论使用基于QWeb的报告引擎,以及生成友好的PDF报告所需要的一切。
第11章,创建网站前端功能,介绍Odoo网站开发,包括web控制器实现和使用QWeb模板构建前端web页面。
第12章,外部API——与其他系统集成,解释了如何从外部应用程序中使用Odoo服务器逻辑,并引入了一个受欢迎的客户端编程库,也可以作为命令行客户端使用。
第l3章,部署清单——现场直播,向我们展示了如何为生产黄金时间准备一个服务器,解释应该注意哪些配置,以及如何配置Nginx反向代理以提高安全性和可伸缩性。
这本书学习的准备工作
我们将在Ubuntu或Debian系统上安装我们的Odoo服务器,但我们希望您使用您的操作系统和编程工具,无论是Windows、Mac还是其他。
我们将提供一些关于在Ubuntu服务器上设置虚拟机的指导。您应该选择使用的虚拟化软件,例如VirtualBox或VMWare Player;两者都是免费的。如果您使用的是Ubuntu或Debian工作站,则不需要虚拟机。
正如您已经指出的,我们的Odoo安装将使用Linux,因此我们将不可避免地使用命令行。但是,你应该能够按照所给的指令行事,即使不熟悉它。
预期Python编程语言的基本知识。如果你不喜欢它,我们建议你学习快速教程,让你开始。我们还将使用XML,因此我们希望熟悉标记语法。
这本书的适合对象
这本书的目标是开发人员,他们有开发商业应用程序的经验,他们愿意快速地用Odoo来生产。
读者应该了解MVC应用程序设计和Python编程语言的知识。熟悉web技术、HTML、CSS和JavaScript也会有所帮助。
规约
在这本书中,你会发现许多不同种类的信息的文本样式。以下是这些风格的一些例子,以及它们的含义的解释。
文本中的代码单词、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟url、用户输入和Twitter句柄如下:文本中的代码字如下所示:“创建一个新的数据库,使用createdb命令。”
代码块设置如下:
@api.multi
def do_toggle_done(self):
for task in self:
task.is_done = not task.is_done
return True
当我们希望将您的注意力吸引到代码块的某个特定部分时,相关的行或项以粗体设置:
@api.multi
def do_toggle_done(self):
for task in self:
task.is_done = not task.is_done
return True
任何命令行输入或输出如下:
$ ~/odoo-dev/odoo/odoo-bin.py -d demo
新的术语和重要的词用粗体显示。例如,在屏幕上、菜单或对话框中看到的单词出现在这样的文本中:“在登录时,你会看到应用程序菜单,显示可用的应用程序。”
读者的反馈
欢迎来自读者的反馈。让我们知道你对这本书的看法,你喜欢什么,不喜欢什么。读者反馈对我们来说很重要,因为它帮助我们开发出你真正能得到最多的标题。为了给我们提供一般的反馈,微信号:yangxunbo1986
网友评论