This question has been flagged
5 Replies
80900 Views

Hi

I want to change the position of Field in the Form View (Parent) to the new Position (In my In herited view). Is there any way.

Example:

Parent View:

<record id="1" model="1">

<field name="arch" type="xml">

<group>

<field name="X"/>

</group>

.....

.....

<group>

<field name="Y"/>

</group>

</field>

</record>

So I want to move the field Y to inside the group X. Not only field. Also I need to move the any other tags like <div> or <group> itself as bunch.

Is there any Xpath which is like below.

<xpath expr="//form/sheet/group/group/field[@name='email']" position="move">

Please help...

 

 

Avatar
Discard
Best Answer

Hello,

we can one more thing instead of "replace". Because in case of replace first we have to  remove the field and then add it to new position which will take one more step extra. So better we can use position="move"

<xpath expr="//field[@name='phone']" position="after">
<xpath expr="//field[@name='tag_ids']" position="move"/>
</xpath>
it will simply move the position of tag_ids field to after phone field. Which will save our extra line of code that we are writing in case of replace.
Avatar
Discard

Its worked.

Hi,
I have tried your code but what I need is to move the industry_id after phone field, However after I update the module, the field is gone. It is not visible at all. I have tested with another field 'barcode' and same result. Is this xpath expression support v16 ?

thanks

then I have done a test like this

<xpath expr="//field[@name='category_id']" position="after">
<xpath expr="//field[@name='mobile']" position="move"/>
</xpath>
this gives me two mobile fields, one in old position and other in new position

Hi @Nomadoo,
I don't know what's wrong with your code. make sure you inherit the correct id.
I test @Ajay Kumar answer in odoo 16 and it's working

<record id="change_field_product_template_tree_view" model="ir.ui.view">
<field name="name">product.template.common.tree.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_tree_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<xpath expr="//field[@name='list_price']" position="move"/>
</xpath>
</field>

Best Answer

Hello,

There is no such value allowed like move in xpath. Values allowed are

  • inside (default): your values will be appended inside the tag

  • after: add the content after the tag

  • before: add the content before the tag

  • replace: replace the content of the tag.

You have to simply replace that field. and put it to new position. For more details, You can refer Doc or can ask me too.

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

This will remove field from that position. Now you can put it to other place you want. Suppose you want to place it after field "Y". Example -

<xpath expr="//group/field[@name='Y']" position="after">
<field name="X"/>
</xpath>

This way, You can change postion of any field, group etc.

Hope this will help you.

Avatar
Discard

Hello @Mansi, I want to add new boolean filed after supplier boolean field in res.partner form inside sale & purchase tab. Can you help me.! Thanks in advance.

Inherit view_partner_form and then givve xpath like //page[@string='Sales & Purchases']/group/group/field[@name='supplier'] and give position to after

Best Answer

Hi Rajiv,,

Here you can use position=replace

you can select the code or block you want to replace

Avatar
Discard
Best Answer

I have the same issue, the view field is not visible.

'data': [

        'views/stock_production_lot_views.xml',

        # 'security/ir.model.access.csv',


    ],

https://www.odoo.com/fr_FR/forum/aide-1/question/odoo-v12-xpath-not-visible-145057


Avatar
Discard
Best Answer

Move has been added to xpath:

https://github.com/odoo/odoo/pull/23877

Avatar
Discard