目录
odoo14开发指南 第四版 1
odoo14开发指南 第四版 2
0 前言 12
0.1 翻译校对团队 15
1 配置odoo开发环境 16
1.1 介绍 16
1.2 odoo生态系统 16
1.2.1 odoo版本 16
1.2.2 Git存储库 17
1.2.3 Runbot 17
1.2.4 odoo应用程序商店 17
1.2.5 odoo社区联盟 18
1.2.6 官方odoo帮助论坛 18
1.3 用源码轻松安装odoo 18
1.3.1 虚拟环境 20
1.3.2 PostgreSQL配置 21
1.3.3 Git配置 22
1.3.4 下载odoo源代码 22
1.3.5 启动实例 22
1.4 使用start命令管理odoo环境 23
1.5 访问数据库管理界面 24
1.5.1 设置或更改主密码 24
1.5.2 创建一个新数据库 25
1.5.3 复制数据库 26
1.5.4 删除数据库 26
1.5.5 备份数据库 27
1.5.6 还原数据库备份 27
1.6 将实例配置存储在文件中 29
1.7 激活odoo开发者工具 32
1.8 从源代码更新odoo 34
2 服务器部署 36
2.1 介绍 36
2.2 安装odoo生产环境 36
2.2.1 服务器选型 38
2.2.2 PostgreSQL调优 39
2.2.3 源代码版本 40
2.2.4 备份 40
2.3 调整生产环境配置文件 41
2.4 将odoo设置为系统服务 44
2.5 使用nginx和Let’s Encrypt配置反向代理SSL 44
2.6 使用Docker运行odoo 49
2.7 使用配置文件运行odoo镜像 50
2.8 通过docker-compose运行odoo 51
2.9 管理内容分发网络 53
2.9.1 网站 53
2.9.2 配置CDN提供程序 54
2.9.3 在odoo配置CDN 55
2.10 管理odoo实例 58
2.10.1 介绍 58
2.10.2 配置附加路径 58
2.10.3 更新插件模块列表 60
2.10.4 标准化实例目录布局 61
2.10.5 安装和升级本地插件模块 63
2.10.6 从GitHub安装插件模块 68
2.10.7 将更改应用于附加 68
2.10.8 应用并尝试提出的拉取请求 69
3 创建odoo插件模块 71
3.1 介绍 71
3.1.1 什么是odoo插件模块? 71
3.2 创建和安装新的插件模块 72
3.3 完整插件模块清单 73
3.4 组织插件模块文件结构 75
3.5 添加模型 77
3.6 添加菜单项和视图 79
3.7 以超级用户身份访问odoo 81
3.8 添加访问权限 82
3.9 使用scaffold命令创建模块 84
4 应用模型 86
4.1 介绍 86
4.2 技术要求 86
4.3 定义模型表示和顺序 86
4.4 将数据字段添加到模型 89
4.5 使用具有可配置精度的浮点字段 93
4.6 向模型添加货币字段 94
4.7 将关系字段添加到模型中 95
4.8 将层次结构添加到模型 97
4.9 将约束验证添加到模型 99
4.10 将计算字段添加到模型中 101
4.11 公开存储在其他模型中的关联字段 103
4.12 使用引用字段添加动态关联 104
4.13 使用继承向模型添加功能 105
4.14 使用继承拷贝模型定义 106
4.15 使用抽象模型可重写模型特征 108
4.16 使用委派继承将功能复制到另一个模型 109
5 基本服务器端开发 111
5.1 介绍 111
5.2 技术要求 111
5.3 定义模型方法并使用API装饰器 111
5.4 向用户报告错误 114
5.5 获取不同模型的空记录集 115
5.6 创建新记录 116
5.7 更新记录集记录的值 119
5.8 结合记录集 122
5.9 过滤记录集 123
5.10 遍历记录集关系 123
5.11 对记录集进行排序 124
5.12 继承模型中定义的业务逻辑 125
5.13 继承write()和create() 127
5.14 自定义搜索记录的方式 129
5.15 使用read_group()获取组中的数据 131
6 模块数据 133
6.1 介绍 133
6.2 技术要求 133
6.3 使用外部ID和名称空间 133
6.4 使用XML文件加载数据 135
6.5 使用noupdate和forcecreate标记 137
6.6 使用CSV文件加载数据 138
6.7 插件更新和数据迁移 139
6.8 从XML文件中删除记录 141
6.9 从XML文件调用函数 142
7 模块调试 144
7.1 介绍 144
7.2 自动重载和--dev选项 144
7.3 生成服务器日志以帮助调试方法 145
7.4 使用odoo shell以交互方式调用方法 147
7.5 使用Python调试器跟踪方法执行 149
7.6 使用odoo社区联盟维护者质量工具 153
7.7 使用Pylint检查您的代码 157
8 高级服务器端开发技巧 162
8.1 介绍 162
8.2 技术要求 162
8.3 更改执行操作的用户 162
8.4 使用修改的上下文调用方法 164
8.5 执行原生SQL查询 166
8.6 编写向导来指导用户 168
8.7 使用上下文计算默认值 170
8.7.1 向导和代码重写 170
8.7.2 重定向用户 171
8.8 定义onchange方法 171
8.9 在服务器端调用onchange方法 174
8.10 用计算方法定义onchange 175
8.11 基于SQL视图定义模型 176
8.12 添加自定义设置选项 177
8.13 实现init钩子 180
9 后端视图 182
9.1 介绍 182
9.2 技术要求 183
9.3 添加菜单项和窗口操作 183
9.4 用动作打开一个特定的视图 185
9.5 将内容和widget添加到表单视图 187
9.6 向表单添加按钮 191
9.7 将参数传递给表单和操作-context上下文 191
9.8 在记录列表上定义过滤器-domain域 193
9.8.1 操作符 194
9.8.2 使用domain域搜索的陷阱 195
9.9 定义列表视图 195
9.10 定义搜索视图 197
9.11 添加搜索过滤器侧面板 199
9.12 更改现有视图-继承视图 200
9.13 视图继承中的计算顺序 202
9.14 定义文档样式表单 203
9.15 定义嵌入视图 205
9.16 在view视图的一侧显示附件 206
9.17 定义看板视图 207
9.17.1 根据状态在列中显示看板卡 209
9.18 定义日历和甘特图视图 210
9.19 甘特视图 211
9.20 定义图形和透视视图 212
9.21 定义群组视图 213
9.22 定义仪表板视图 214
9.23 定义活动视图 215
9.24 定义地图视图 216
10 访问权限 218
10.1 技术要求 218
10.2 创建权限组并将其分配给用户 218
10.3 添加对模型的权限访问 221
10.4 限制对模型中字段的访问 223
10.5 使用记录规则限制记录访问 224
10.6 使用权限组激活功能 226
10.7 以超级用户身份访问记录集 230
10.8 隐藏基于组的视图元素和菜单 231
11 国际化 233
11.1 安装语言并配置用户首选项 233
11.2 配置与语言相关的设置 235
11.3 通过Web客户端翻译用户界面文本 236
11.4 将翻译字符串导出到文件 238
11.5 使用gettext工具使翻译更容易 240
11.6 将翻译文件导入odoo 241
11.7 更改网站的自定义语言URL代码 242
12 自动化,工作流程,电子邮件和打印输出 244
12.1 介绍 244
12.2 技术要求 244
12.3 管理动态记录阶段 245
12.4 管理看板阶段 248
12.5 在看板卡中添加快速创建表单 250
12.6 创建交互式看板卡 251
12.7 在看板视图中添加进度条 254
12.8 创建服务器操作 255
12.9 使用Python代码服务器操作 257
12.10 在时间条件下使用自动操作 259
12.11 在事件条件上使用自动操作 261
12.12 创建基于QWeb的PDF报表 264
12.13 通过看板卡管理活动 267
13 Web服务器开发 272
13.1 介绍 272
13.2 技术要求 272
13.3 使用可从网络访问的路径 272
13.4 限制对Web可访问路径的访问 275
13.5 使用传递给处理程序的参数 277
13.6 修改现有的处理程序 278
13.7 服务静态资源 280
14 CMS网站开发 282
14.1 介绍 282
14.2 管理静态资源 282
14.3 定制资源 283
14.4 为网站扩展CSS和JavaScript 285
14.5 创建或修改模板-QWeb 288
14.5.1 循环 290
14.5.2 动态属性 291
14.5.3 字段 292
14.5.4 条件语句 292
14.5.5 设置变量 292
14.5.6 子模板 292
14.5.7 内联编辑 293
14.6 管理动态路由 294
14.7 为用户提供片段 296
14.8 向用户提供动态摘要 300
14.9 获取用户的意见 304
14.10 管理搜索引擎优化(SEO)选项 307
14.11 管理网站的站点地图 308
14.12 获取访问者的国家/地区信息 309
14.13 跟踪营销活动 310
14.14 管理多个网站 312
14.15 重定向旧URL 314
15 Web客户端开发 317
15.1 介绍 317
15.2 技术要求 318
15.3 创建自定义widget 318
15.4 使用客户端QWeb模板 322
15.5 对服务器进行RPC调用 324
15.6 创建新视图 326
15.7 调试客户端代码 334
15.8 通过导航改善入门体验 336
15.9 移动应用JavaScript 338
16 odooweb库(owl) 340
16.1 创建一个OWL组件 340
16.2 在OWL组件中管理用户操作 342
16.3 使OWL组件具有反应性 344
16.4 了解OWL组件的生命周期 345
16.5 将OWL字段添加到窗体视图 347
17 使用odoo进行应用内购买 351
17.1 介绍 351
17.2 技术要求 351
17.3 应用内购买概念 351
17.4 在odoo中注册IAP服务 353
17.5 创建IAP服务模块 357
17.6 授权和收取IAP积分 361
17.7 创建IAP客户端模块 365
17.8 帐户缺少信用时显示优惠 369
18 自动化测试案例 372
18.1 介绍 372
18.2 技术要求 373
18.3 Python测试用例 373
18.4 运行标记的Python测试用例 374
18.5 为客户端测试用例设置Headless Chrome 376
18.6 添加浏览测试用例 379
18.7 从UI运行客户端测试用例 382
18.8 调试客户端测试用例 384
18.9 为失败的测试用例生成视频/界面截图 385
18.10 填充随机数据以进行测试 386
19 使用odoo.sh管理、部署和测试 388
19.1 介绍 388
19.2 技术要求 388
19.3 探索odoo.sh的一些基本概念 388
19.3.1 什么是odoo.sh? 388
19.3.2 你什么时候应该使用odoo.sh? 389
19.3.3 odoo.sh有什么特点? 389
19.4 创建一个odoo.sh帐户 390
19.5 添加和安装自定义模块 392
19.6 管理分支机构 394
19.6.1 创建临时分支 395
19.6.2 创建临时分支 396
19.7 访问调试选项 398
19.8 Web shell 399
19.9 代码编辑器 400
19.10 日志 401
19.11 获取实例的备份 401
19.12 所有odoo.sh选项 404
19.12.1 合作者 405
19.12.2 公共访问 405
19.12.3 子模块 406
19.12.4 数据库线程 406
19.12.5 分期分支 406
19.12.6 数据库大小 407
19.12.7 odoo源代码修订版 407
20 远程过程调用odoo 408
20.1 技术要求 408
20.2 使用XMLRPC登录/连接odoo 408
20.3 通过XMLRPC搜索/读取记录 410
20.4 通过XML-RPC创建/更新/删除记录 412
20.5 通过XML-RPC调用方法 414
20.6 使用JSONRPC登录/连接odoo 416
20.7 通过JSON-RPC获取/搜索记录 418
20.8 通过JSON-RPC创建/更新/删除记录 420
20.9 通过JSON-RPC调用方法 422
20.10 OCA odoorpc图书馆 423
20.11 生成API密钥 425
21 性能优化 428
21.1 记录集的预取模式 428
21.2 内存缓存-ormcache 430
21.3 生成图像缩略图 431
21.4 统计数据分组 433
21.5 创建或编写多个记录 434
21.6 通过数据库查询访问记录 436
21.7 分析Python代码 437
22 POS 440
22.1 介绍 440
22.2 技术要求 440
22.3 添加自定义JavaScript/SCSS文件 440
22.4 在键盘上添加操作按钮 442
22.5 实现RPC调用 445
22.6 修改销售点屏幕UI 447
23 电子邮件管理 453
23.1 技术要求 453
23.2 配置邮件发件和收件服务器 453
23.3 配置发送邮件服务器 454
23.4 管理文档聊天 456
23.5 管理文档活动 458
23.6 使用Jinja模板发送邮件 459
23.7 使用QWeb模板发送邮件 462
23.8 管理邮件别名 465
23.9 记录聊天中的用户更改日志 467
23.10 发送定期摘要电子邮件 468
24 物联网专题 471
24.1 技术要求 471
24.2 为Raspberry Pi烧录,写入,安装IOT Box镜像 471
24.3 将IOT Box与网络连接 473
24.4 将IOT Box添加到odoo 475
24.5 手动连接物联网盒 477
24.6 加载驱动程序并列出已连接的设备 480
24.7 从设备获取输入 482
24.8 通过SSH访问IOT Box 484
24.9 配置POS 485
24.10 将PDF报告直接发送到打印机 487
翻译校对是个苦力活,小伙伴们辛苦了.
非常感谢参与校对的小伙伴.
2021-02-18