“首页”的版本间的差异
1360857908(讨论 | 贡献) (→向导模型) |
1360857908(讨论 | 贡献) (→向导窗体) |
||
第272行: | 第272行: | ||
===[[向导窗体]]=== | ===[[向导窗体]]=== | ||
+ | 向导窗体视图是相同的常规模型,除了两个具体因素︰ | ||
+ | A< footer >节可以用于放置动作按钮 | ||
+ | 一种特殊type ="cancel"按钮可用于中断不执行任何操作向导 | ||
+ | 这是我们的内容views/todo_wizard_view.xml文件︰ | ||
+ | <odoo> | ||
+ | <record id="To-do Task Wizard" model="ir.ui.view"> | ||
+ | <field name="name">To-do Task Wizard</field> | ||
+ | <field name="model">todo.wizard</field> | ||
+ | <field name="arch" type="xml"> | ||
+ | <form> | ||
+ | <div class="oe_right"> | ||
+ | <button type="object" name="do_count_tasks" | ||
+ | string="Count"/> | ||
+ | <button type="object" name="do_populate_tasks" | ||
+ | string="Get All"/> | ||
+ | </div> | ||
+ | <field name="task_ids"> | ||
+ | <tree> | ||
+ | <field name="name"/> | ||
+ | <field name="user_id"/> | ||
+ | <field name="date_deadline"/> | ||
+ | </tree> | ||
+ | </field> | ||
+ | <group> | ||
+ | <group> | ||
+ | <field name="new_user_id"/> | ||
+ | </group> | ||
+ | <group> | ||
+ | <field name="new_deadline"/> | ||
+ | </group> | ||
+ | </group> | ||
+ | <footer> | ||
+ | <button type="object" name="do_mass_update" | ||
+ | string="Mass Update" class="oe_highlight" | ||
+ | attrs="{'invisible': | ||
+ | [('new_deadline','=',False), | ||
+ | ('new_user_id', '=',False)] | ||
+ | }"/> | ||
+ | <button special="cancel" string="Cancel"/> | ||
+ | </footer> | ||
+ | </form> | ||
+ | </field> | ||
+ | </record> | ||
+ | 227<!-- More button Action --> | ||
+ | <act_window id="todo_app.action_todo_wizard" | ||
+ | name="To-Do Tasks Wizard" | ||
+ | src_model="todo.task" res_model="todo.wizard" | ||
+ | view_mode="form" target="new" multi="True"/> | ||
+ | </odoo> | ||
+ | |||
+ | |||
+ | 在 XML 中我们看到<act_window>窗口,将选项添加到 To-do Task窗体的多个按钮,通过使用src_model属性。target ="new" 属性做为一个对话框窗口打开。 | ||
+ | 你可能也注意到attrs用于更新模块列表按钮,直到选择新的截止日期或负责任的用户选择更新后才能可见。 | ||
+ | |||
===[[向导业务逻辑]]=== | ===[[向导业务逻辑]]=== | ||
===[[记录]]=== | ===[[记录]]=== |
2017年5月5日 (五) 01:49的版本
目录
- 1 Odoo 大V社概况
- 2 前言
- 3 第一章 Odoo 入门
- 4 第二章 构建您的第一个应用程序
- 5 第三章 继承–扩展现有的应用程序
- 6 第四章 模块数据
- 7 第五章 模型 - 结构化应用程序数据
- 8 第六章 视图 - 设计用户界面
- 9 第七章 ORM应用逻辑 - 支持业务流程
Odoo 大V社概况
Odoo 大V社成员来自五湖四海,他们热爱开源,无私奉献,甘于把自己的业余时间投入到公益的 Odoo 相关资料的整理中去,
为 Odoo 在中国区的推广无私奉献。
- odoo 中文书籍交流群:343593855(验证信息:参与odoo中文书籍编写), 不参加书籍编写勿加
- odoo 实施定制交流群:446389096(验证信息:odoo 实施), 开发实施定制交流的加这个群
Odoo中文版技术书籍项目
- 项目一期目标: Odoo 中文开发手册
- 项目性质:公益,保留所有参与人员的署名权;项目成果归全人类
- 项目使命:Odoo 中文书籍编写整理,推倒 odoo 语言壁垒,助力 odoo 中国推广
- 项目成员:
- 统筹:
- 01.广州-唐振宽(稿件初审) 02.广州-黄伟杰(任务分派) 03.广州-彭 明(进度跟踪)
- 审核:
- 01.苏州-刘春涛(chinamaker)
- 成员:
- 统筹:
01.苏州时 威 02.苏州庄春梅 03.杭州胡 恒 04.广州陈厚源 05. 06.苏州孙保锁 07.成都曾发军 08.深圳季蜗牛 09.北京乔明洋 10.香港胡sir 11.上海高守庆 12.上海赵祥涛 13.上海罗英川布 14.台北蘇sir 15.苏州-n37r06u3 16.石家庄-leo 17.武汉-周传红 18.福州- 南湘子
前言
第一章 Odoo 入门
安装Odoo主机服务器
准备Debian 主机
为Odoo创建用户帐户
从源码安装Odoo
创建新的Odoo应用数据库
管理你的Odoo数据库
Odoo 版本
更多服务器选项
Odoo 服务器配置文件
更改侦听端口
数据库的过滤选项
管理服务器日志消息
在工作站上进行开发
使用Linux 文本编辑器
安装和配置 Samba
激活开发者工具
安装第三方模块
查找社区模块
配置 addons 路径
更新应用程序列表
第一章 小结
第二章 构建您的第一个应用程序
基本概念
了解应用程序和模块
修改和扩展模块
创建模块的基本框架
关于许可证
添加 addons 路径
安装新模块
升级模块
服务器开发模式
模型层
创建数据模型
加入自动化测试
视图层
添加菜单选项
创建窗体视图
业务凭证窗体视图
添加动作按钮
用groups来组织forms
完整的Form视图
添加列表和搜索视图
业务逻辑层
添加业务逻辑
添加测试
设置安全访问权限
测试安全访问权限
添加访问控制安全
Row-level访问规则
更好的模块描述
第二章 小结
第三章 继承–扩展现有的应用程序
向待办事宜应用程序添加共享功能
扩展模型
向模型中添加字段
修改现有字段
修改模型的方法
扩展视图
扩展表单视图
扩展树视图和搜索视图
更多的模型继承机制
使用原型继承复制特征
使用委托继承嵌入模型
添加社交网络功能
修改数据
修改菜单和操作记录
修改安全记录规则
第三章 小结
第四章 模块数据
了解外部标识符
寻找外部标识符
导出和导入数据
导出数据
导入数据
CSV数据文件相关记录
模块数据
演示数据
XML数据文件
数据的noupdate属性
在XML里定义记录
设置字段值
使用表达式设置值
设置字段值的关系
常用模型的快捷键
XML数据文件的其它操作
删除记录
触发功能和工作流
第四章小结
第五章 模型 - 结构化应用程序数据
将应用程序特性组织到模块中
todo_ui模块介绍
创建模型
模型属性
模型和Python类
瞬态和抽象模型
检查现有模型
创建字段
基本字段类型
公共字段属性
特殊字段名称
模型之间的关系
多对一关系
多对多关系
一对多反向关系
分层关系
使用动态关系的参考字段
计算字段
在计算字段上搜索和写入
存储计算字段
关联字段
模型约束
第五章 小结
第六章 视图 - 设计用户界面
使用XML文件定义用户界面
菜单项
窗口动作
上下文和域
上下文数据
域表达式
窗体视图
处理同一类型的几个视图
业务文档视图
header头部
sheet工作表
标题和副标题
智能按钮区域
对表单中的内容进行分组
标签笔记本
查看语义组件
字段
字段的标签
关系字段
字段小部件
按钮
智能按钮
动态视图
动态属性
列表视图
搜索视图
日历视图
图形和枢轴视图
其他视图类型
第六章 小结
第七章 ORM应用逻辑 - 支持业务流程
创建向导
向导模型
向导显示窗体视图向用户,通常作为一个对话框窗口,某些字段必须填写。这些然后会利用向导逻辑。 这实施使用相同的模型/视图体系结构对于常规视图,但支持模型基于 models.TransientModel 而不是models.Model. 这种类型的模型还具有数据库的代表性和存储状态存在,但这一数据预计将是有用的只是直到向导完成其工作。计划的作业定期清理向导数据库表中的旧数据。 models/todo_wizard_model.py文件将定义的字段,我们需要与用户进行交互︰ 要更新的任务清单,用户负责和期限日期来设置它们。 首先添加 models/__init__.py文件,写下面的代码行︰from .import todo_wizard_model 然后创建实际models/todo_wizard_model.py文件︰
- -*- coding︰ utf-8 -*-
from odoo import models,fields,api class TodoWizard(models.TransientModel): _name = 'todo.wizard' _description = 'To-do Mass Assignment' task_ids = fields.Many2many('todo.task', string='Tasks') new_deadline = fields.Date('Deadline to Set') new_user_id = fields.Many2one( 'res.users',string='Responsible to Set')
使用常规模型一对多关系时,不应在瞬态模型,它是值得的。为此原因是它需要常规模型有瞬态模型,但不允许反转的多对一关系,因为可能随着瞬态记录需要收集垃圾常规模型。
向导窗体
向导窗体视图是相同的常规模型,除了两个具体因素︰ A< footer >节可以用于放置动作按钮 一种特殊type ="cancel"按钮可用于中断不执行任何操作向导 这是我们的内容views/todo_wizard_view.xml文件︰ <odoo>
<record id="To-do Task Wizard" model="ir.ui.view"> <field name="name">To-do Task Wizard</field> <field name="model">todo.wizard</field> <field name="arch" type="xml"> <form>
<button type="object" name="do_count_tasks" string="Count"/> <button type="object" name="do_populate_tasks" string="Get All"/>
<field name="task_ids"> <tree> <field name="name"/> <field name="user_id"/> <field name="date_deadline"/> </tree> </field> <group> <group> <field name="new_user_id"/> </group> <group> <field name="new_deadline"/> </group> </group> <footer> <button type="object" name="do_mass_update" string="Mass Update" class="oe_highlight" attrs="{'invisible':
[('new_deadline','=',False), ('new_user_id', '=',False)] }"/>
<button special="cancel" string="Cancel"/> </footer> </form> </field> </record> 227 <act_window id="todo_app.action_todo_wizard" name="To-Do Tasks Wizard" src_model="todo.task" res_model="todo.wizard" view_mode="form" target="new" multi="True"/>
</odoo>
在 XML 中我们看到<act_window>窗口,将选项添加到 To-do Task窗体的多个按钮,通过使用src_model属性。target ="new" 属性做为一个对话框窗口打开。
你可能也注意到attrs用于更新模块列表按钮,直到选择新的截止日期或负责任的用户选择更新后才能可见。