{流程管理流程再造}Odoo90模块开发全流程

上传人:蜀歌 文档编号:146418546 上传时间:2020-09-30 格式:PDF 页数:70 大小:761.24KB
返回 下载 相关 举报
{流程管理流程再造}Odoo90模块开发全流程_第1页
第1页 / 共70页
{流程管理流程再造}Odoo90模块开发全流程_第2页
第2页 / 共70页
{流程管理流程再造}Odoo90模块开发全流程_第3页
第3页 / 共70页
{流程管理流程再造}Odoo90模块开发全流程_第4页
第4页 / 共70页
{流程管理流程再造}Odoo90模块开发全流程_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《{流程管理流程再造}Odoo90模块开发全流程》由会员分享,可在线阅读,更多相关《{流程管理流程再造}Odoo90模块开发全流程(70页珍藏版)》请在金锄头文库上搜索。

1、流程管理流程再造Odoo90 模 块开发全流程 流程管理流程再造Odoo90 模 块开发全流程 构建 Odoo 模块构建 Odoo 模块 模块组成模块组成 o业务对象 业务对象声明为 PythonPython 类, 由 Odoo 自动载入. o数据文件 XML 或 CSV 文件格式, 在其中声明了元数据(视图或工作流)、配置数据(模块参数)、演示数据 等. oWeb 控制器 处理 Web 浏览器发来的 requests. o静态 web 数据 Web 用到的图像, CSS 或 JavaScriptJavaScript 文件. 模块结构模块结构 一个 Odoo 模块也是一个 Python 模块,

2、 存放在一个目录中, 包含一个_init_.py 文件, 用于导入其他 Python 模块. from . import mymodule odoo.py 提供了一个子命令 scaffold 可以方便地创建一个空的模块. $ odoo.py scaffold 命令执行后, 将会创建一个子目录并且其中包括了 Odoo 模块所需的一些基本文件. 练习 #1练习 #1 执行 ./odoo.py scaffold openacademy addons, 在 addons 目录下创建一个名为 openacademy 的模 块, 生成的目录文件结构如下. openacademy _init_.py _op

3、enerp_.py controllers.py demo.xml models.py security ir.model.access.csv templates.xml 各文件内容请查看文件或查看原文, 然后对_openerp_.py 中的几种标识文本进行修改, 至少需要添加installable:True, application:True。 对象关系映射对象关系映射 ORM 层是 Odoo 的一个关键组件, 它可以避免大部分的 SQL 语句编写从而提高扩展性和安全性. 业务对象用派生自 Model 的 Python 类(模型)来编写, 该类的_name 属性定义了模型在 Odoo 系统

4、中的 名称. from openerp import models class MinimalModel(models.Model): _name = test.model 字段字段 字段定义模型能够存储什么以及在哪里存储, 字段在模型类中用属性来定义. from openerp import models, fields class LessMinimalModel(models.Model): _name = test.model2 name = fields.Char() 通用属性通用属性 与模型类似, 字段也可以通过参数传递对其进行设定: name = field.Char(requi

5、red=True) 字段的常用属性有: ostring (unicode, default: fields name) 字段标签名称,会显示在界面上(对用户可见)。 orequired (bool, default: False) 如果值为 True,此字段值不能为空,设置默认值或者在创建记录时提供。 ohelp (unicode, default: ) 界面上显示提示语。 oindex (bool, default: False) 如果值为 True,创建表时将为此列添加索引。 简单字段简单字段 字段可以分为两类: 简单字段和关系字段. 前者为原子值, 直接保存在模型对应的数据库数据库表中;

6、 后者 连接到其他的记录上(可以是相同的模型也可以是不同的模型). Boolean, Date, Char 这些都是简单字段. 保留字段保留字段 Odoo 在模型中自动创建并维护一些字段, 这些字段就是保留字段, 这些字段数据不需要也不应该手 动去修改. oid (Id) 一条记录的唯一 id。 ocreate_date (Datetime) 记录创建时间。 ocreate_uid (Many2one) 谁创建的记录。 owrite_date (Datetime) 最后修改时间。 owrite_uid (Many2one) 谁最后修改的记录。 特殊字段特殊字段 默认情况下, Odoo 要求模型

7、中有一个name字段, 用于显示和搜索, 通过设置_rec_name 也可以达到 这样的目的. 练习 #2练习 #2 在 openacademy 模块中定义一个新的模型Course, openacademy/models.py 内容如下: # -*- coding: utf-8 -*- from openerp import models, fields, api class Course(models.Model): _name = openacademy.course name = fields.Char(string=Title, required=True) description =

8、 fields.Text() 数据文件数据文件 Odoo 是一个高度数据驱动的系统, 虽然使用 Python 代码来定制模块行为, 但很多模块数据是在其载 入时 setup 的, 并且有些模块仅仅为 Odoo 添加数据. 通过数据文件来定义模块数据, 例如可以使用 XML 文件中的元素定义数据, 每一个 元素创建或者更新数据库中的一条记录, 形式如下: a value omodel Odoo 模型名. oid 外部 ID(External Identifier), 通过它可以引用到记录(并且不需要知道记录所在的数据库 ID). o元素 name 属性用于确定字段名称(例如 descriptio

9、n), 该元素的 body 给出字段的值. 数据文件必须在模块载入清单文件列表中, 也就是_openerp_.py 的data列表(全部载入)或demo列 表(只有设定为载入演示数据才会载入)中. 练习 #3练习 #3 创建一个数据文件来向 Course 中添加数据, 编辑 openacademy/demo.xml, 并确认_openerp_.py 的demo列表中有该文件. Course 0 Course 0s description Can have multiple lines Course 1 Course 2 Course 2s description 动作和菜单动作和菜单 在 Od

10、oo 中, 动作和菜单都是定义在数据库中的数据记录, 一般通过数据文件来定义. 动作可以由三种方式触发: o点击菜单项(菜单项链接到特定动作) o点击视图上的按钮(如果按钮连接到动作) o作为对象的上下文动作 使用声明一个 ir.ui.menu 并将其连接到一个 action, 可以用下面的形式的代码. Ideas idea.idea tree,form 注意: action 必须先于 menu 的连接使用定义, 数据文件在载入时顺序地执行, 所以动作的 ID 必须首 先存在于数据库中才能使用. 练习 #4练习 #4 定义一个新的菜单项访问 OpenAcademy 课程. 创建 openaca

11、demy/views/openacademy.xml 文件, 并在其中添加动作和菜单. Courses openacademy.course form tree,form Create the first course 在_openerp_.py 中添加这个数据文件名到data. data: # security/ir.model.access.csv, templates.xml, views/openacademy.xml, , 更新模块后可以看到菜单, 操作看看效果. 基本视图基本视图 视图定义了模型数据如何显示, 每种类型的视图代表一种数据可视化模式. 基本的视图定义基本的视图定义 一

12、个视图是以一条 ir.ui.view 模型数据的形式定义的. view.name object_name !- view content: , , , . - Tree viewsTree views Tree view也被称为list views, 在一个表格中显示记录. 根元素是, 最简形式的tree view只是 简单地列出每条记录的多个字段, 每个字段为一列. Form viewsForm views Form 用于创建或编辑单条记录, 根元素是, 可以在 form 中组合各种高层结构元素(如 groups, notebooks)以及交互元素(如 buttons, fields). 练

13、习 #5练习 #5 为 openacademy 创 建 form view, views/openacademy.xml 数 据 文 件 中 增 加 内容. course.form openacademy.course !- The following tag is an action definition for a window action, 更新模块, 创建一个 Course, 可以看到 form view 变了. 练习 #6练习 #6 使用notebook. 在 form view 中, 将 description 字段放在一个 tab 中, 方便随后添加其他 tabs, 对练 习#

14、5 的 form view 数据做如下修改. This is an example of notebooks 更新模块, 看效果. MoreMore 还可以使用 HTML 为 form view 提供更加灵活的布局, 例如下面的例子. Search viewsSearch views Search views 用来自定义 list views 及其它统计/多条记录视图中的搜索字段. 根元素为, 其 子元素定义了在哪些字段上进行搜索. 如果一个模型没有定义对应的 Search view, odoo 自动创建一个仅搜索 name 字段的 search view. 练习 #7练习 #7 添加 title 以及 desc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号