Odoo 视图继承不是“把 XML 复制一份”:XPath、position 和 primary/extension 讲透
看懂 ir.ui.view 如何把继承链拼成最终 arch,为什么 XPath 找不到、position 失效,往往不是 Odoo 随机坏了。
TOPIC PICKS
看懂 ir.ui.view 如何把继承链拼成最终 arch,为什么 XPath 找不到、position 失效,往往不是 Odoo 随机坏了。
可以顺着继续读的相邻方向
Cohort 视图真正难的不是表格渲染,而是 retention 与 churn 口径切换、forward/backward 时间轴计算,以及 cell
spreadsheet_edition 前端协作体验背后,依赖的不是浏览器自动同步,而是 revision 链、websocket 推送、快照冻结和单元格级讨论。
web_gantt 的前端不是简单时间轴组件,而是把 dependency、resize/drag、分组和进度呈现绑在一起的任务编辑器。
web_studio/report.py 处理的不是普通 HTML 编辑,而是带 QWeb 语法、oe-origin 标记和 t-call 内联内容的混合文档;保存前后都要来回转换。
Odoo Web Client 里的日期时间控件,看起来只是一个输入框外加一个弹出式选择器。但从 `datetime_input.js`、`datetime_picker_hook.js`、`datetime_picker.js` 到 `datetime_picker_popover.js` 这条链路看,官方真正维护的是一套状态机:输入框如何托管给 service、时间粒度如何统一 round、范围选择如何稳定焦点、日期与时间又如何在提交前合并成最终值。本文把这条协议完整拆开。
Studio XML 编辑器拿到的并不是单个 arch 文本,而是一组 related views 与 t-call 资源;真正落库时也不是整段覆盖,而是 keyed diff 生成补丁。