变更日志

Odoo 20.0 版本

  • 新增 BinaryValue.filename,并更新二进制字段的 RPC 格式。参见 #266082。

  • 在 #281202 中移除了 Model._table_query。

  • 简化翻译处理。字段现在拥有复制函数,默认为对名为 “name” 的 char 字段追加 “(copy)”。参见 #272177 和 #284881。

  • 新增 populate 脚本用于生成测试用的模拟数据。

  • 清单术语改为存储在各模块自己的翻译文件中,而非存放在 base 中。参见 #264363。

Odoo Online 19.4 版本

  • ir.access 合并了 ACL(访问控制列表)与记录规则。参见 #166359。

  • 字段更新与 inverse 执行在 create() 与 write() 中现在都一致地按照 (field.write_sequence, field_index) 排序。参见 #265469。

  • 新增基于 h11 的 HTTP 服务器。参见 #247162。

  • 从模型代码中移除 request,并新增 env.website。参见 #252766。

  • 线程安全的 ormcache 及自动信号通知。参见 #255059 与 #261736。

  • 将报表引擎模块化,并为 paper-muncher 做准备。分别参见 #259626 和 #264068。

Odoo Online 19.3 版本

  • Binary 字段的类型现在是 BinaryValue。我们在整个数据流中不再使用 base64 编码,而是直接使用新的对象。参见 #244421。

  • 修复 x2many 字段的缓存污染问题。访问此类字段现在只返回可访问的记录。参见 #254944。

  • 使用域(domain)实现自定义访问权限。域操作符 “access” 可以显式检查 comodel 的权限,从而简化访问规则的编写。参见 #254381 与 #239862。

  • 更简洁的 Model.concat 与 Model.union API。参见 #249731。

  • 一次 write 写入多条翻译。参见 #246357。

Odoo Online 19.2 版本

Odoo Online 19.1 版本

  • 为 ir.config_parameter 提供新的 API。参见 #223180。

  • 用于构建 SQL 的新 API。参见 #234156。

  • Field.compute_sql 允许定义生成计算字段 SQL 的方式。定义完成后,即可使用计算字段进行分组和排序。参见 #221544。

Odoo 版本 19.0

  • 为数据透视视图添加对 GROUPING SETS 的支持。参见 #194413 。

  • 在域中添加对动态日期的支持。参见 #216665 。

  • 在 #217708 中弃用了 odoo.osv 。

  • 在 #193636 中弃用了 record._cr 、 record._context 、 record._uid 。

Odoo Online 版本 18.4

  • CLI 中添加了 reinit 选项以重新初始化模块。参见 #206408 。

  • 可以编写和组合自定义域以注入任意 SQL。参见 #205208 。

Odoo Online 版本 18.3

  • 在执行 Fields.search 方法之前应用域优化。所有等式处理一致: = 等同于 in 。参见 #191549 。

  • 新的 cron API,用于通过批量提交通知进度。参见 #197781 。

  • 默认不再加载演示数据。参见 #194585 。

Odoo Online 版本 18.2

  • read_group 已被弃用,后端使用推荐使用 _read_group ,格式化公共 API 使用 formatted_read_group 。参见 #163300 。

  • 添加了 @api.private 以区分公共 Python 方法和为 RPC 调用暴露的方法。参见 #195402 。

  • odoo 模块的原生命名空间 PEP-420 。参见 #195664 。

Odoo Online 版本 18.1

  • 新的 odoo.domain 和 odoo.Domain API 用于域操作。参见 #170009 。

  • 将约束和索引声明为模型属性,参见 #175783 。

  • json 控制器已重命名为 jsonrpc 。它们的调用方式相同,只是 Python 文件中的 type 发生了变化。参见 #183636 。

Odoo 版本 18.0

  • 按名称搜索现在与其他字段一样实现为 _search_display_name 。参见 #174967 。

  • 新增检查访问权限和规则的方法,现将两者结合: check_access 、 has_access 和 _filtered_access 。参见 #179148 。

  • 翻译现在通过 Environment 提供,参见 #174844 。

Odoo 在线版本 17.4

  • 内部操作符 inselect 已被移除。替代方案是使用 in 搭配 Query 或 SQL 对象。参见 #171371 。

Odoo 在线版本 17.3

  • 我们现在可以在 read_group 、 _read_group 和域中按日期部分数字进行分组,参见 #159528 。

Odoo 在线版本 17.2

  • Field 的 group_operator 属性已重命名为 aggregator ,参见 #127353 。

  • 我们现在可以通过相关无存储字段进行分组/聚合/排序,参见 #127353 。

Odoo 在线版本 17.1

  • 方法 _flush_search() 已被弃用,参见 #144747 。字段的刷新现在由 execute_query() 完成,并基于 _search() 和其他构建此类对象的低级 ORM 方法放入 SQL 对象中的元数据。这些方法还负责检查 SQL 对象中使用的字段的访问权限。

Odoo 版本 17.0

  • 引入了一个 SQL 包装器对象,使 SQL 组合更简单且更安全(防止 SQL 注入)。ORM 方法现在在内部使用它。由 #134677 引入。

Odoo 在线版本 16.4

  • 方法 name_get() 已被弃用,参见 #122085 。改为读取字段 display_name 。

Odoo 在线版本 16.3

Odoo 在线版本 16.2

  • 重构了搜索和读取方法的实现,以便能够以最少的 SQL 查询次数将两者结合。我们引入了两个新方法 search_fetch() 和 fetch() ,它们利用了这种组合。更多详情请参见拉取请求 #112126 。

Odoo 版本 16.0

  • 翻译字段的翻译内容现在以 JSONB 格式存储,详见 #97692 和 #101115 。代码翻译不再存储在数据库中,而是变为静态内容,并在需要时从 PO 文件中提取。

  • search_count() 现在考虑了 limit 参数,详见 #95589 。它限制了要计数的记录数量,从而在部分结果可接受时提高了性能。

Odoo 在线版本 15.4

  • 新增了用于刷新到数据库和使缓存失效的 API,详见 #87527 。已在 odoo.models.Model 和 odoo.api.Environment 中添加了新方法,这些方法在每种情况下对实际执行的操作更加清晰明了。详见章节 SQL 执行 。

Odoo 在线版本 15.3

Odoo 在线版本 15.2

  • 字段的特定索引类型:通过 #83274 和 #83015 ,开发者现在可以定义 PostgreSQL 中字段可用的索引类型。详见 odoo.fields.Field 的 索引属性 。

  • Model 的 _sequence 属性已被移除。Odoo 允许 PostgreSQL 使用主键的默认序列。 #82727

  • 方法 _write() 不会因不存在的记录而引发错误。 #82727

  • Field 的 column_format 和 deprecated 属性已被移除。 #82727