Odoo 12开发之部署和维护生产实例

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第十四篇暨完结篇。

本文中将学习将 Odoo 服务器作为生产环境的基本准备。安装和维护服务器是一个复杂的话题,应该由专业人员完成。本文中所学习的不足以保证普通用户创建应对包含敏感数据和服务的健壮、安全环境。

本文旨在介绍 Odoo 部署的重要配置和最佳实践,这样系统管理员可以更好地准备 Odoo 服务器主机。通过本文的学习,我们将能创建一个相对安全的 Odoo 服务器,足够应对普通的生产环境使用。本文所述并非部署 Odoo 的唯一方法,其它的方法也会同样适用。

本文主要内容有:

  • 通过源码安装 Odoo,主要包含:
    • 安装依赖
    • 准备一个独立的系统用户
    • 通过源码安装
    • 设置配置文件
    • 多进程
  • 设置 Odoo 为系统服务,主要包含:
    • 创建 systemd 服务
    • 创建自启动或 sysvinit 服务
    • 通过命令行查看 Odoo 服务
  • 设置 Nginx 反向代理
  • 配置HTTPS安全服务, 主要包含 :
    • 创建自签名SSL证书
    • 在 Nginx 上配置 HTTPS访问
    • 缓存静态内容
  • 服务器和模块更新,主要包含:
    • 创建模拟环境
    • 更新 Odoo 源码

Read More

Odoo 12开发之创建网站前端功能

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第十三篇。

Odoo 起初是一个后台系统,但很快就有了前端界面的需求。早期基于后台界面的门户界面不够灵活并且对移动端不友好。为解决这一问题,Odoo 引入了新的网站功能,为系统添加了 CMS(Content Management System)内容管理系统。这使得我们无需集成第三方 CMS 便可创建美观又高效的前端。本文中我们将学习如何利用 Odoo 自带的网站功能开发面向前端的插件模块。

本文主要内容有:

  • 学习项目 – 自助图书馆
  • 第一个网页
  • 创建网站

Read More

Odoo 12开发之看板视图和用户端 QWeb

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第十一篇。

QWeb 是 Odoo 使用的模板引擎,它基于 XML 来生成 HTML 片断和页面。通过 QWeb可生成内容丰富的看板(Kankan)视图、报表和 CMS 网页。本文中我们将学习QWeb 语法以及如何使用 QWeb 来创建我们自己的看板视图和自定义报表。

本文主要内容有:

  • 看板是什么?
  • 设计看板视图
  • QWeb 模板语言
  • 看板视图的继承
  • 添加自定义 CSS 和 JavaScript

Read More

Odoo 12开发之后台视图 – 设计用户界面

  1. 本文为最好用的免费ERP系统Odoo 12开发手册系列文章第十篇。

本文将学习如何为用户创建图形化界面来与图书应用交互。我们将了解不同视图类型和小组件(widgets)之间的差别,以及如何使用它们来提供更优的用户体现。

本文主要内容有:

  • 菜单项
  • 窗口操作(Window Actions)
  • 表单视图结构
  • 字段
  • 按钮和智能按钮
  • 动态视图元素
  • 列表视图
  • 搜索视图
  • 其它视图类型

Read More

Odoo 12开发之外部 API – 集成第三方系统

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第九篇。

Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用。本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API。为避免引入大家所不熟悉的编程语言,此处我们将使用基于 Python 的客户端,但这种 RPC 调用的处理方法也适用于其它编程语言。

我们将一起了解如何使用 Odoo RPC调用,然后根据所学知识使用 Python创建一个简单的图书命令行应用。

本文主要内容有:

  • 在客户端机器上安装 Python
  • 使用XML-RPC连接 Odoo
  • 使用XML-RPC运行服务器端方法
  • 搜索和读取 API 方法
  • 图书客户端XML-RPC 接口
  • 图书客户端用户界面
  • 使用OdooRPC库
  • 了解ERPpeek客户端

Read More

Odoo 12开发之业务逻辑 – 业务流程的支持

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第八篇。

在前面的文章中,我们学习了模型层、如何创建应用数据结构以及如何使用 ORM API 来存储查看数据。本文中我们将利用前面所学的模型和记录集知识实现应用中常用的业务逻辑模式。

本文的主要内容有:

  • 以文件为中心工作流的阶段(stage)
  • ORM 方法装饰器:@api.multi, @api.one和@api.model
  • onchange方法,与用户即时交互
  • 使用 ORM 内置方法,如create, write 和 unlink
  • Mail 插件提供的消息和活动功能
  • 创建向导来帮助用户执行复杂操作
  • 使用日志消息优化系统监测
  • 抛出异常以在出错时给用户反馈
  • 使用单元测试来进行代码质量检查
  • 开发工具,调试器等开发者工具

Read More

Odoo 12开发之记录集 – 使用模型数据

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第七篇。

在上一篇文章中,我们概览了模型创建以及如何从模型中载入和导出数据。现在我们已有数据模型和相关数据,是时候学习如何编程与其进行交互 了。模型的 ORM(Object-Relational Mapping)提供了一些交互数据的方法,称为 API(Application Programming Interface)。这包括基本的增删改查(CRUD)操作,也包括一些其它操作,如数据导入导出,以及改善用户界面和体验的工具方法。它还包含一些我们在前面文章中所看到的装饰器。这些都让我们可以通过添加新的方法来调用 ORM 进行相关操作。

本文主要内容有:

  • 使用 shell 命令交互式地学习 ORM API
  • 理解执行环境和上下文
  • 使用记录集和作用域(domain)查询数据
  • 在记录集中访问数据
  • 在记录中写入
  • 编写记录集
  • 使用底层 SQL 和数据库事务

Read More

Odoo 12开发之模型 – 结构化应用数据

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第六篇。

在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件。本文及接下来的一篇我们将深入到组成应用的每一层:模型层、视图层和业务逻辑层。

本文中我们将深入学习模型层,以及学习如何使用模型来设计应用所需的数据结构。我们会探索模型和字段的各项作用,包括定义模型关系、添加计算字段、创建数据约束。

本文的主要内容有:

  • 学习项目 – 优化图书馆应用
  • 创建模型
  • 创建字段
  • 模型间的关系
  • 计算字段
  • 模型约束
  • 了解 Odoo的 base 模型

Read More

Odoo 12开发之导入、导出以及模块数据

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第五篇。

大多数Odoo 模块的定义,如用户界面和安全规则,实际是存储在对应数据表中的数据记录。模块中的 XML 和 CSV 文件不是 Odoo 应用运行时使用,而是载入数据表的手段。正是因为这个原因,Odoo 模块的一个重要部分是在文件中放入数据以在插件安装时将其载入数据库。

模块可以包含初始数据和演示数据,可通过数据文件将它们加入模块。此外,了解 Odoo 数据的格式对于在项目实施上下文中导入导出业务数据也非常重要。

本文的主要内容有:

  • 理解外部标识符的概念
  • 导入导出数据文件
  • 使用 CSV 文件
  • 添加模块数据
  • 使用 XML 数据文件

Read More

Odoo 12 开发之模块继承

本文为最好用的免费ERP系统Odoo 12开发手册系列文章第四篇。

Odoo 的一个强大功能是无需直接修改底层对象就可以添加功能。这是通过其继承机制来实现的,采取在已有对象之上修改层来完成。这种修改可以在不同层上进行-模型层、视图层和业务逻辑层。我们创建新的模块来做出所需修改而无需在原有模块中直接修改。

上一篇文章中我们从零开始创建了一个新应用,本文中我们学习如何通过继承已有的核心应用或第三方模块来创建新的模块。实现以上本文将主要涵盖:

  • 原模型扩展,为已有模型添加功能
  • 修改数据记录来继承视图,添加功能或修改数据来修改其它模块创建的数据记录
  • 其它模型继承机制,如代理继承和 mixin 类
  • 继承 Python 方法来为应用业务逻辑添加功能
  • 继承 Web 控制器和模板来为网页添加功能

Read More