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

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

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

qweb 定义的
模板xml 将在 odoo启动的时候,

打包为 /web/webclient/qweb 资源,
例如

打包的具体代码是

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

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

webclient_templates 定义了 web client 页面的骨架

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

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

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

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

qweb的更多相关文章

  1. QWeb、Widget继承

    对于Odoo前端来说,所有的js对象都是继承自openerp.web.Class这个类,然后由此派生出Widget,由Widget派生出其他诸如View等可视化部件,结合QWeb,我们可以实现对现有部 ...

  2. 8.0 Qweb 报表编写步骤

    8.0 采用的是Qweb报表,摒弃了7.0中的RML报表. 1.首先在xml文件中注册一个报表: <report id="qweb_test_report" model=&q ...

  3. OpenERP QWeb模板标签笔记

    在OpenERP中,通过QWeb来对模板进行渲染后加载到浏览器中,而模板中有许多的标签来定制各种需求变化,在这里记录学习过程中碰到的标签定义,以方便查询. 模板中的标签统一都是以"t-&qu ...

  4. (21)odoo中的QWeb模板引擎

    -----------------更新时间18:13 2016-04-05 星期二-----------------* 概述    QWeb是odoo主要模板引擎,采用xml表述,最后生成HTML文件 ...

  5. Odoo Qweb报表css丢失问题

    有时候我们恢复过来的数据库在打印原来系统的Qweb报表的时候会发现所有的样式都丢失了,只打印内容出来. 这时候我们可以进入Setting/ Technical / Paramters / System ...

  6. Qweb报表中的Reload from Attachment参数

    通过继承的方式修改了Qweb报表却发现没有生效,经查,其原因在于报表的设置中勾选了 Reload from Attachment 选项. 将本选项取消选中即可生效.

  7. odoo qweb 记录

    默认的打印功能修改,比如在动作中的打印功能: 继承抽象模型 models.AbstractModel 重写 _get_report_values class PayslipDetailsReportI ...

  8. odoo Q-web

    文档链接于:https://www.odoo.com/documentation/8.0/reference/qweb.html QWeb is the primary templating engi ...

  9. openerp QWeb

    1.web 模块 注意,OpenERP 模块中 web 部分用到的所有文件必须被放置在模块内的 static 文件夹里.这是强制性的,出于安全考虑. 事实上,我们创建的文件夹 CSS,JS 和 XML ...

随机推荐

  1. linux下wps,系统缺失字体:wingdings、wingdings 2、wingdings3

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAArcAAACdCAIAAAAhV8dZAAAgAElEQVR4nOzdd1wT9/8H8OvXfjvtt8

  2. delphi FMX 数字下拉滑动

    滑动输入数字 NumberBox控件 HorzIncrement:划动自动增加输入值的步长 combobox控件 http://docwiki.embarcadero.com/RADStudio/Be ...

  3. scala-类

    ---恢复内容开始--- 随笔记录scala中,有哪些类,如何定义一个类,有哪些注意点. 一,scala中有哪些类? 1,简单类 class 2,单例模式 object 3,伴生类 4,case cl ...

  4. 宏碁台式机,如何设置u盘启动

    1.按delete进入BIOS2.Authentication->Secure Boot状态改为Disabled;Boot Options->Launch CSM状态改为Always;Bo ...

  5. [转帖]FPGA开发工具汇总

    原帖:http://blog.chinaaet.com/yocan/p/5100017074 ----------------------------------------------------- ...

  6. UVa 694 - The Collatz Sequence

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...

  7. Opencl 并行求和

    上周尝试用opencl求极大值,在网上查到大多是求和,所谓的reduction算法.不过思路是一样的. CPP: ; unsigned ; ; ; int nGroup = nGroupSize / ...

  8. TStringList的bug问题

    今天测试发现用TStringList进行字符分隔的时候 ,如果被分隔对象中含有空格就有产生发隔错误 方案一:可以用其它的函数来代替  方案二:Items.StrictDelimiter:= True;

  9. 右键添加"用vim打开"文件选项

    保存一个foo.reg文件 ==================== Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\Shell\e ...

  10. PPTP-VPN第三章——用户流量与并发数限制

    在前面两篇文章中详细介绍了pptp vpn的安装与使用,以及如何配置用户认证存入mysql数据库.本文将在前面两篇文章的基础上介绍如何对用户的流量做限制,同时限制相同账号的用户,同一时刻的在线数为1. ...