在更深入了解 Odoo 开发之前,我们应配置好开发环境并学习相关的基础管理任务.本文中,我们将学习创建 Odoo 应用所需用到的工具和环境配置.这里采用 Ubuntu 系统来作为开发服务器实例的主机,可以是云服务器.本地服务器或者PC 上的虚拟机. 本文主要内容有: 配置主机,可以是 Ubuntu系统或 PC 机上的 Linux 子系统 使用源码安装 Odoo,包括数据库和系统依赖的安装 管理 Odoo 数据库(创建.删除和拷贝) 配置 Odoo 服务器选项 查找并安装社区插件 使用虚拟环境管理…
Odoo 起初是一个后台系统,但很快就有了前端界面的需求.早期基于后台界面的门户界面不够灵活并且对移动端不友好.为解决这一问题,Odoo 引入了新的网站功能,为系统添加了 CMS(Content Management System)内容管理系统.这使得我们无需集成第三方 CMS 便可创建美观又高效的前端.本文中我们将学习如何利用 Odoo 自带的网站功能开发面向前端的插件模块. 本文主要内容有: 学习项目 – 自助图书馆 第一个网页 创建网站 开发准备 我将用第十一章 Odoo 12开发之看板视…
Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用.本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API.为避免引入大家所不熟悉的编程语言,此处我们将使用基于 Python 的客户端,但这种 RPC 调用的处理方法也适用于其它编程语言. 我们将一起了解如何使用 Odoo RPC调用,然后根据所学知识使用 Python创建一个简单的图书命令行应用. 本文主要内容有: 在客户端机器上安装 Python 使用XML-RPC连接 Odoo 使用XML-RPC运行服务…
在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中我们将深入学习模型层,以及学习如何使用模型来设计应用所需的数据结构.我们会探索模型和字段的各项作用,包括定义模型关系.添加计算字段.创建数据约束. 本文的主要内容有: 学习项目 – 优化图书馆应用 创建模型 创建字段 模型间的关系 计算字段 模型约束 了解 Odoo的 base 模型 开发准备 本文…
Odoo 开发通常都需要创建自己的插件模块.本文中我们将通过创建第一个应用来一步步学习如何在 Odoo 中开启和安装这个插件.我们将从基础的开发流学起,即创建和安装新插件,然后在开发迭代中更新代码来进行升级. Odoo 采用类 MVC(Model-View-Controller)的结构,我们将深入到各层来实施一个图书应用.本文主要内容有: 创建一个新的模块,用来实施相关功能 添加应用的特性功能:顶级菜单项和安全组 添加一个一开始会失败但在项目完成时成功运行的自动化测试 实施模型层,定义应用的数据…
报表是业务应用非常有价值的功能,内置的 QWeb 引擎是报表的默认引擎.使用 QWeb 模板设计的报表可生成 HTML 文件并被转化成 PDF.也就是说我们可以很便捷地利用已学习的 QWeb 知识,应用到业务报表中.本文中我们将为图书馆应用添加一个报表,复习 QWeb生成报表的关键技巧.包括像汇总一类计算.翻译和纸张样式打印. 本文主要内容有: 安装wkhtmltopdf 创建业务报表 QWeb 报表模板 在报表中展示数据 渲染图片 报表汇总 定义纸质格式 在报表中启用语言翻译 使用自定义 SQ…
QWeb 是 Odoo 使用的模板引擎,它基于 XML 来生成 HTML 片断和页面.通过 QWeb可生成内容丰富的看板(Kankan)视图.报表和 CMS 网页.本文中我们将学习QWeb 语法以及如何使用 QWeb 来创建我们自己的看板视图和自定义报表. 本文主要内容有: 看板是什么? 设计看板视图 QWeb 模板语言 看板视图的继承 添加自定义 CSS 和 JavaScript 开发准备 我们将继续使用第十章 Odoo 12开发之后台视图 – 设计用户界面完成的library_checkou…
大多数Odoo 模块的定义,如用户界面和安全规则,实际是存储在对应数据表中的数据记录.模块中的 XML 和 CSV 文件不是 Odoo 应用运行时使用,而是载入数据表的手段.正是因为这个原因,Odoo 模块的一个重要部分是在文件中放入数据以在插件安装时将其载入数据库. 模块可以包含初始数据和演示数据,可通过数据文件将它们加入模块.此外,了解 Odoo 数据的格式对于在项目实施上下文中导入导出业务数据也非常重要. 本文的主要内容有: 理解外部标识符的概念 导入导出数据文件 使用 CSV 文件 添加…
Odoo 的一个强大功能是无需直接修改底层对象就可以添加功能.这是通过其继承机制来实现的,采取在已有对象之上修改层来完成.这种修改可以在不同层上进行-模型层.视图层和业务逻辑层.我们创建新的模块来做出所需修改而无需在原有模块中直接修改. 上一篇文章中我们从零开始创建了一个新应用,本文中我们学习如何通过继承已有的核心应用或第三方模块来创建新的模块.实现以上本文将主要涵盖: 原模型扩展,为已有模型添加功能 修改数据记录来继承视图,添加功能或修改数据来修改其它模块创建的数据记录 其它模型继承机制,如代…
第二章 Android系统与嵌入式开发 第二章首先要先了解Android和嵌入式Lnux系统有什么区别和联系,嵌入式Linux系统是在嵌入式设备中运行Linux系统:Android系统是在嵌入式设备中运行Android系统. 其区别就是Android系统和Linux系统的区别.Android系统的底层是Linux的内核,上面跑的是Android的java虚拟机.Android系统的UI做的比Lnux好很多. 首先我们应该先了解一下什么是嵌入式,对于嵌入式来说,它是一种“完全嵌入受控器件内部,为特…