支持的视图类型:form、tree、search ...

支持的定位方法:

                 <notebook position="inside">

       <xpath expr="//page[@name='page_history']" position="inside">

                 <field name="mobile" position="after">

<filter name="consumable" position="after">

                 <group name="bank" position="after">

<xpath expr="//field[@name='standard_price']" position="replace">

                 <xpath expr="//button[@name='open_ui']" position="replace">

<xpath expr="//div[@class='oe_employee_details']/h4/a"
position="after">

                
<xpath
expr="/form/sheet/notebook/page/field[@name='line_ids']/tree/field[@name='analytic_account_id']"
position="replace">

                
<xpath
expr="/form/sheet/notebook/page/field[@name='line_ids']/form/group/field[@name='analytic_account_id']"
position="replace">

支持的规则:before、after、replace、inside、attributes

插入:

position='before'
position="after"

      <field name="mobile" position="after">
       <field name="sale_order_count"/>
      </field>

<filter name="consumable"
position="after">
                  
<separator/>
                  
<filter name="filter_to_qty_available" string="在手数量>0"
icon="terp-accessories-archiver+" domain="[('qty_available', '>',
0)]"/>
                  
<filter name="filter_to_virtual_available" string="预测数量>0"
icon="terp-accessories-archiver+" domain="[('virtual_available', '>',
0)]"/>
               
</filter>
替换:
position="replace"

<xpath expr="//field[@name='standard_price']"
position="replace">
                       
<group name='cost_prices' colspan="2"
col="4">
                           
<field name="standard_price" nolabel="1"
attrs="{'readonly':[('cost_method','=','average')]}"/>
                           
<field name="cost_price_extra"
groups="product.group_product_variant"/>
                       
</group>
                
</xpath>

<xpath expr="//button[@name='open_ui']"
position="replace">
                    
<button name="open_ui" type="object" string="Start Selling"
attrs="{'invisible' : [('pos_state', 'not in', ('opened',))]}"
class="oe_highlight"
invisible="True"/>
                
</xpath>
内部创建:?

position="inside"

<xpath expr="//page[@name='page_history']" position="inside">
                    <group name="grp_task" string="Tasks">
                        <field name="task_ids" colspan="4" nolabel="1">
                            <tree string="Tasks" editable="bottom">
                                <field name="name"/>
                                <field name="user_id"/>
                                <field name="date_deadline"/>
                                <field name="state" invisible="1"/>
                               
<button name="do_open" states="pending,draft,done,cancelled"
string="Start Task" type="object" icon="gtk-media-play" help="For
changing to open state"
invisible="context.get('set_visible',False)"/>
                               
<button name="action_close" states="draft,pending,open"
string="Done" type="object" icon="terp-dialog-close" help="For changing
to done state"/>
                            </tree>
                        </field>
                      </group>
                </xpath>

修改属性:修改属性能够实现的功能,不要使用 replace
position="attributes"

<xpath expr="//field[@name='name']"
position="attributes">
                       
<attribute
name="required">1</attribute>
                   
</xpath>


示例代码:

<record
id="product_normal_variant_form_view"
model="ir.ui.view">
           
<field
name="name">product.normal.variant.form</field>
           
<field
name="model">product.product</field>
           
<field
name="type">form</field>
           
<field name="inherit_id" ref="product.product_normal_form_view"
/>
           
<field name="arch"
type="xml">
           
 <data>
                   
<xpath expr="//field[@name='name']"
position="attributes">
                       
<attribute
name="required">1</attribute>
                   
</xpath>
                   
<xpath expr="//field[@name='standard_price']"
position="replace">
                       
<group name='cost_prices' colspan="2"
col="4">
                           
<field name="standard_price" nolabel="1"
attrs="{'readonly':[('cost_method','=','average')]}"/>
                           
<field name="cost_price_extra"
groups="product.group_product_variant"/>
                       
</group>
                   
</xpath>
               
<sheet>
                   
<group col="2" colspan="2" groups="base.group_extended"
position="replace">
                        
<group colspan="2" col="6" name="weight"
groups="base.group_extended">
                           
<field name="is_multi_variants"
invisible="1"/>
                           
<group colspan="2"
col="2">
                               
<separator string="Template Weights"
colspan="2"/>
                               
<field digits="(14, 3)" name="volume"
attrs="{'readonly':[('type','=','service')]}"/>
                               
<field digits="(14, 3)" name="weight"
attrs="{'readonly':[('type','=','service')]}"/>
                               
<field digits="(14, 3)" name="weight_net"
attrs="{'readonly':[('type','=','service')]}"/>
                           
</group>
                           
<group colspan="2" col="2"
attrs="{'invisible':[('is_multi_variants','=',False)]}">
                               
<separator string="Variant Weights"
colspan="2"/>
                               
<field digits="(14, 3)" name="additional_volume"
attrs="{'readonly':[('type','=','service')]}"/>
                               
<field digits="(14, 3)" name="additional_weight"
attrs="{'readonly':[('type','=','service')]}"/>
                               
<field digits="(14, 3)" name="additional_weight_net"
attrs="{'readonly':[('type','=','service')]}"/>
                           
</group>
                           
<group colspan="2" col="2"
attrs="{'invisible':[('is_multi_variants','=',False)]}">
                               
<separator string="Total Weights"
colspan="2"/>
                               
<field digits="(14, 3)"
name="total_volume"/>
                               
<field digits="(14, 3)"
name="total_weight"/>
                               
<field digits="(14, 3)"
name="total_weight_net"/>
                           
</group>
                       
</group>
                   
</group>
               
</sheet>
               
</data>
           
</field>
       
</record>   

<!-- 隐藏 open_ui 按钮
-->
        <record
model="ir.ui.view"
id="pos_session_opening_form_view_openui">
           
<field
name="name">pos.session.opening.form.view.openui</field>
           
<field
name="model">pos.session.opening</field>
           
<field name="inherit_id"
ref="point_of_sale.pos_session_opening_form_view"/>
           
<field name="arch"
type="xml">
                
<xpath expr="//button[@name='open_ui']"
position="replace">
                    
<button name="open_ui" type="object" string="Start Selling"
attrs="{'invisible' : [('pos_state', 'not in', ('opened',))]}"
class="oe_highlight"
invisible="True"/>
                
</xpath>
           
</field>
        </record>

<record
id="product_search_form_view_filter"
model="ir.ui.view">
           
<field
name="name">product.search.form.filter</field>
           
<field
name="model">product.product</field>
           
<field name="inherit_id"
ref="product.product_search_form_view"/>
           
<field name="arch"
type="xml">
               
<filter name="consumable"
position="after">
                  
<separator/>
                  
<filter name="filter_to_qty_available" string="在手数量>0"
icon="terp-accessories-archiver+" domain="[('qty_available', '>',
0)]"/>
                  
<filter name="filter_to_virtual_available" string="预测数量>0"
icon="terp-accessories-archiver+" domain="[('virtual_available', '>',
0)]"/>
               
</filter>
           
</field>
       
</record>

        <!-- Partner kanban view inherte -->
        <record
model="ir.ui.view"
id="crm_lead_partner_kanban_view">
           
<field
name="name">res.partner.kanban.saleorder.inherit</field>
           
<field
name="model">res.partner</field>
           
<field name="inherit_id"
ref="base.res_partner_kanban_view"/>
           
<field name="priority"
eval="20"/>
           
<field name="arch"
type="xml">
               
<field name="mobile"
position="after">

                   
<field
name="sale_order_count"/>
               
</field>

               
<xpath expr="//div[@class='oe_kanban_partner_links']"
position="inside">

                   
<a name="%(sale.act_res_partner_2_sale_order)d" type="action"
t-if="record.sale_order_count.value>0">
                       
<t t-esc="record.sale_order_count.value"/>
Sales
                   
</a>
               
</xpath>

           
</field>
        </record>

         <!--  Partners inherited form -->
        <record
id="view_task_partner_info_form"
model="ir.ui.view">
           
<field
name="name">res.partner.task.info.inherit</field>
           
<field
name="model">res.partner</field>
           
<field name="inherit_id"
ref="base.view_partner_form"/>
           
<field name="arch"
type="xml">
               
<xpath expr="//page[@name='page_history']"
position="attributes">

                   
<attribute
name="invisible">False</attribute>
               
</xpath>
               
<xpath expr="//page[@name='page_history']"
position="inside">

                   
<group name="grp_task"
string="Tasks">
                       
<field name="task_ids" colspan="4"
nolabel="1">
                           
<tree string="Tasks"
editable="bottom">
                               
<field
name="name"/>
                               
<field
name="user_id"/>
                               
<field
name="date_deadline"/>
                               
<field name="state"
invisible="1"/>
                               
<button name="do_open" states="pending,draft,done,cancelled" string="Start
Task" type="object" icon="gtk-media-play" help="For changing to open state"
invisible="context.get('set_visible',False)"/>
                               
<button name="action_close" states="draft,pending,open" string="Done"
type="object" icon="terp-dialog-close" help="For changing to done
state"/>
                           
</tree>
                       
</field>
                     
</group>
               
</xpath>

           
</field>
       </record>

openerp学习笔记 视图继承(tree、form、search)的更多相关文章

  1. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  2. openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)

    表格行颜色:             <tree string="请假单列表" colors="red:state == 'refuse';blue:state = ...

  3. openerp学习笔记 对象继承,对象初始化数据

    1.对象继承     _inherit = "product.product" 继承产品对象,给产品对象添加字段或方法,不需要设置 _name._table 等属性     注意: ...

  4. openerp学习笔记 视图中字段只变化(on_change)联动其他字段值、选择和过滤

    1.修改产品数量时,自动计算产品销售金额.销售成本和销售利润<field name="num" on_change="on_change_product(produ ...

  5. openerp学习笔记 视图更新时删除已存在的菜单或其他对象

    删除菜单示例: <delete id="base.menu_module_updates" model="ir.ui.menu"/><dele ...

  6. c++学习笔记之继承篇

    title: c++学习笔记之继承篇 date: 2017-03-26 16:36:33 tags: [c++,继承,public,virtual,private,protected] categor ...

  7. openerp学习笔记 统计、分析、报表(过滤条件向导、分组报表、图形分析、比率计算、追加视图排序)

    待解决:图形中当改变分组时,图例不正确            存储比率计算时,分组合计不正确 wizard:过滤条件向导,用于输入过滤条件 wizard/sale_chart.py # -*- cod ...

  8. openerp学习笔记 搜索视图(自己创建的、自己的、本部门的、本部门及下属部门的、今日的、日期从,日期至、多条件模糊搜索、or、and)

    自己创建的: domain="[('create_uid','=',uid)]" 自己的: domain="[('employee_id','=','#kl_user_e ...

  9. openerp学习笔记 context 的应用

    1.在Action中定义,context用于传递搜索条件和分组条件,在搜索视图中默认显示: 示例代码: <record model="ir.actions.act_window&quo ...

随机推荐

  1. X、Y轴抖动的动画

    实现这个动画效果用到了interpolator属性,这样就能让一些控件产生自定义的抖动效果 这是用作interpolator的文件,用来做动画循环 cycle.xml <?xml version ...

  2. Eclipse with ADT的安装和使用

    我们从安卓官方网站下载下来的eclipse是捆绑好了ADT的,所以不用自己安装插件. 我现在在这个目录下简历一个空的文件夹--virtual,用来来存放虚拟机. 然后,在我的电脑上右键->属性, ...

  3. 微服务中的 API 网关(API Gateway)

    API 网关(API Gateway)提供高性能.高可用的 API 托管服务,帮助用户对外开放其部署在 ECS.容器服务等云产品上的应用,提供完整的 API 发布.管理.维护生命周期管理.用户只需进行 ...

  4. 第三章 dubbo内核之ioc源码解析

    dubbo的IOC具体实现在:T injectExtension(T instance)方法中.该方法只在三个地方被使用: createAdaptiveExtension() --injectExte ...

  5. windows取证

    工具网站 : http://www.ntsecurity.nu/toolbox/ 命令行历史 :命令行模式 CMD 中使 doskey /history 命令可以显示前面输入的命令情况(例如使用 cl ...

  6. 读书笔记,《Java 8实战》第五章,使用流

    本章我们将会了解到关于Stream API的很多操作,这些操作能够完成很多复杂的查询,比如,比如筛选,切片,映射,查找,匹配和规约, 第一节,筛选和切片    首先我们来看看用谓词来选择流动的元素,主 ...

  7. checkbox反复调用attr('checked', true/false)只有第一次生效

    /** * 全选 */ function checkAll() { $("input[name=ids]").attr("checked", true); } ...

  8. Qt OpenGL:学习现代3D图形编程之四,透视投影浅析

    一.非真实的世界 与之前几篇文章不同的是,这里要画12个三角形,这个12个三角形构造一个方形棱柱(这里为长方体).棱柱的每个四边形表面由两个三角形组成.这两个三角形其中的一条边重合,而且它们的六个顶点 ...

  9. Android -- ViewPager切换动画,PageTransformer

    transformPage(View view, float position) view就是滑动中的那个view,position这里是float类型,是当前滑动状态的一个表示,比如当滑动到正全屏时 ...

  10. ubuntu忘记root密码 的解决方法

    alt+f2,在弹出的运行窗口中输入:gnome-terminal,回车. 即进入终端 输入:sudo passwd root,回车后会提示你输入你当前用户的密码 之后 按提示输入两次root的密码( ...