Programmer LiLi
Programmer LiLi

Reputation: 157

I need to understand use of xpath in odoo

I use xpath to customize odoo report, but i can't undestand how to use postion attribute in xpath tag, please give me documentation and example to use position="replace" and position="inside" ...

Upvotes: 3

Views: 6295

Answers (1)

Jack Sparrow
Jack Sparrow

Reputation: 666

Available positions in xpath are 1: inside 2: after 3: before 4: replace 5: attributes

1: inside

<record model="ir.ui.view" id="view_partner_form">
<field name="name">res.partner.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
    <notebook position="inside">
        <page string="Relations">
            <field name="relation_ids" colspan="4" nolabel="1"/>
        </page>
    </notebook>
</field>

This will add a page to the notebook of the res.partner.form view in the base module.

2: after

<record model="ir.ui.view" id="view_partner_form4">
<field name="name">res.partner.form.inherit4</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
    <field name="lang" position="after">
        <field name="relation_ids"/>
    </field>
</field>

This will add relation_ids field after the lang field.

3: before

<record model="ir.ui.view" id="view_partner_form3">
<field name="name">res.partner.form.inherit3</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
    <field name="lang" position="before">
        <field name="relation_ids"/>
    </field>
</field>

This whill add relation_ids field before the lang field.

4: replace

<record model="ir.ui.view" id="view_partner_form2">
<field name="name">res.partner.form.inherit2</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
    <field name="lang" position="replace"/>
</field>

to replace any element we can use replace position

5: attributes

<record model="ir.ui.view" id="view_partner_form2">
<field name="name">res.partner.form.inherit2</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//form/field[@name='lang']" position="attributes">
       <attribute name="string">New String for field</attribute>
       <attribute name="readonly">(1,0)field editing</attribute>
       <attribute name="invisible">(1,0) visibility</attribute>
       <attribute name="groups">groups for field</attribute>
</xpath>

Please check Odoo's Official Documentation.

check this odoo's official documentation

Upvotes: 8

Related Questions