_# jeffery # focus on Odoo and other open source IT solutions # IT基础架构资深专家,开源解决方案专家,odoo资深专家__Q:913547235 讨论群397750860

qweb

qweb odoo的模板系统, odoo系统中, 它有不同的用途和实现,

  • 一个是 web client widget 的渲染引擎, 它是通过 javascript实现的,也是 最早引入到 odoo系统的,在 OpenERP 最初引入 web client 加入的,现在使用 qweb2.js 这个 libaray 对模板进行 渲染
  • 另外用作 web pagereport、看板 等的模板引擎,它是 通过 python 实现的

       

   

web client 使用的 qweb template manifest 文件中的 qweb项目 进行定义,

   

qweb 定义的 模板xml 将在 odoo启动的时候, 打包为 /web/webclient/qweb 资源, 例如

   

打包的具体代码是

   

通过 concat_xml 所有的 qweb 打包合并在一起,提供给 webclient 使用。

   

   

web page reportkankan 归根到底 都是 ir.ui.view 其中 reporttemplate 均是 ir.ui.view 的别名, 他们 都是 通过标准的 data file 进行定义, 例如

   

webclient_templates 定义了 web client 页面的骨架

   

这些 data file 安装模块的时候, 被安装到 ir.ui.view 里面去, 例如

   

因此, web page 的修改 可以直接 view 进行 修改

   

同样, report 的内容也是 装载如到 view 里面, 例如

   

   

对于看板,也可以 签入 qweb 定义的 页面片段,例如

   

posted on 2017-01-07 15:19  odoouse  阅读(938)  评论(0编辑  收藏  举报

导航

_# jeffery # focus on Odoo and other open source IT solutions # IT基础架构资深专家,开源解决方案专家,odoo资深专家