Skip to Content
Menu
This question has been flagged
2 Replies
1794 Views

I have a many2many field in purchase_order_line, i want to make to make that field as readonly on  purchase state only

Avatar
Discard
Best Answer

Hi

You can use attribute as readonly for make it as readonly 

Try with following code


<record id="purchase_orderline_form" model="ir.ui.view">
<field name="name">sale.orderline.form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" ref="purchase.purchase_order_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook/page[@name='products']/field[@name='order_line']/tree/field[@name='name']"
position="before">
<field name="product_ids" optional="hide" string="Discount" widget="many2many_tags"
attrs="{'readonly':[('state','=','draft')]}"
/>
</xpath>

</field>
</record>


where product_ids is the many2many field


Regards

Avatar
Discard
Best Answer

Hi,

Python and an XML file can be used to make fields read-only based on states.

Using Python:

We can add attributes to the field which need to be hidden.

field_name = fields.field_type( string = ‘Field Name’, states={‘draft’ : [(‘readonly’, True)]})

Using XML:

We can use attrs to make the field read-only

<field name="field_name" string="Field Name" widget="many2many_tags" attrs="{'readonly':[('state','=','draft')]}"/>


Regards

Avatar
Discard