This question has been flagged
5 Replies
5179 Views

Hello All,

I want to hide/invisible some fields in product form based on product category

Thanks in advance

Ankit H Gandhi

Avatar
Discard
Best Answer

Hello Ankit,

based on the category name you can hide/invisible the field, but for that you have to store the category name into the product form. 

second way is that put one boolean field into product category and based on that boolean field you can hide/invisible the field, but i think in this also you have to store the boolean field value into product form. For this you can see the example in odoo like go to picking form view there is one tab "Detailed Operations" that is based on the stock.picking.type's "show Detailed operation" field.

I hope this will helps you.

Avatar
Discard

Good idea.

Author

Hi Mitul,

Your solutions are working for me.

Thank you +1

Author Best Answer

Hello All,

Using below code I have acheived solution

Create new related field in Product Template model, Which store the Parent Category Name.

categ_name = fields.Char(related='categ_id.parent_id.name',
string='Category Name')
Define that categ_name field in xml file with invisible='1'
Now add attrs on field

<xpath expr="//field[@name='internal_reference']" position="attributes">

<attribute name="attrs">{'invisible': [('categ_name','=','Saleable')]}</attribute>
</xpath>

 Thanks @ Mitul Shingala

Best Thanks,

Ankit H Gandhi

Avatar
Discard
Best Answer

Hi, just inherit the view of the product "product_template_form_view" and then do a xpath like this:

<xpath expr="//field[@name='internal_reference']" position="attributes">

<attribute name="attrs">{'invisible': [('categ_id','=','id category')]}</attribute>
</xpath>



Avatar
Discard