Odoo(OpenERP )視圖繼承總結

ODOO支持的視圖類型: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"/>
                            </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>
                    </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>
        <!--kanban view inherit -->
        <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>
         <!-- inherit 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"/>
                            </tree>
                        </field>
                      </group>
                </xpath>
            </field>
       </record>
發佈了112 篇原創文章 · 獲贊 25 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章