1
votes

I am trying to move a field under res.partner. The field is Barcode and it is under notebook Sales & Purchases. I added a field to the form view but as I have found out Odoo only allows on field per view. Below code works but does not display any data.

<xpath expr="//field[@name='category_id']" position="after">
                <field name="barcode" />
                <field name="pin"

enter image description here

The barcode field seems to be point_of_sale.view_partner_property_form

enter image description here

I tried below but it did not remove the barcode field

<!--Form -->
<odoo>
    <record id="view_partner_pos_form_extend" model="ir.ui.view">
        <field name="name">res.partner.pos.form.view.extend</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="point_of_sale.view_partner_property_form" />
        <field name="arch" type="xml">
            <xpath expr="//field[@name='barcode']" position="replace">      
            </xpath>
        </field>
    </record> 
</odoo>
1
Both answers seem correct, could you please edit in all your partner form view extensions? - CZoellner

1 Answers

1
votes

Instead of using xpath expression just use field.

<field name="barcode" position="replace"/>

Example:

<record id="view_partner_pos_form_extend" model="ir.ui.view">
    <field name="name">res.partner.pos.form.view.extend</field>
    <field name="model">res.partner</field>
    <field name="inherit_id" ref="point_of_sale.view_partner_property_form" />
    <field name="arch" type="xml">
        <!-- Uncomment this line and comment the second line the remove the group -->
        <!--group name="point_of_sale" position="replace"/-->
        <field name="barcode" position='replace'/>
        <field name="category_id" position='after'>
            <field name="barcode"/>
        </field>
    </field>
</record>

EDIT:

The position='move' has been introduced to move an element in an inherited view.

It's used as

<xpath expr="//@target" position="after">
    <xpath expr="//@node" position="move"/>
</xpath>

or also

<field name="target_field" position="after">
    <field name="my_field" position="move"/>
</field>

The xpath with a position after, before, inside or replace can thus now have another xpath as direct child with position move.