Help

2

Set a notebook page invisible in inherited view

Avatar
Yao

Hi all,

I am trying to customize the Product view via inherited view. Currently, there are a few tabs in the Product page: Information/Procurements/Inventory/Sales/Accounting.

We do not need the Sales for now. To avoid the users' confusion, I would like to hide the tab. At first, I tried to delete the page, the system gives error as it seems that other page calls for some information from this tab. Hence I am not able to delete the page. Thus I am thinking whether it's possible to hide the page. I tried to use invisible =1 in the editing tags, but it did not work. Please kindly advise how I could achieve this.

Thanks a lot in advance!

<record model="ir.ui.view" id="moleac_product_form_view">
        <field name="name">Product Inherited View</field>
        <field name="model">product.product</field>
        <field name="inherit_id" ref="product.product_normal_form_view" /> 
            <field name="arch" type="xml">
                <data>
                    <!--Edit Tab Sales-->
                    <xpath expr="/form/sheet/notebook/page[@string='Sales']" invisiable="1"/>   
                </data>
            </field>
    </record>
Avatar
Discard
2 Answers
4
Best Answer

This is the final solution:

    <record model="ir.ui.view" id="view_partner_form_jolibelle2">
        <field name="name">res.partner.form.jolibelle2</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="arch" type="xml">
            <page string="Sales & Purchases" position="attributes">
                <attribute name='invisible'>1</attribute> 
            </page>
        </field>
    </record>

And in this way, it works....

2 Comments
Avatar
Discard

Even cleaner would be to use the page name in place of the string. page string is depracated in Odoo V9 and would cause errors.

Avatar
Ubaid ur Rehman
-

For Odoo v9 this works for me in Products to hide Accounting page. As this page has no name atrribute.

<xpath expr="//page[5]" position="attributes">

<attribute name="invisible">1</attribute>

</xpath>

1
Best Answer

in not sure about this but try this if this works. After your <data> tag.. call the page..

<page string="Sales" invisible="1"">..

just try if you want, i think you dont need the xpath to do that..

4 Comments
Avatar
Discard
Avatar
Yao
-

I tried with the code before using xPath. unfortunately it did not work for me. It gave validate error:Error occurred while validating the field(s) arch: Invalid XML for View Architecture! . thanks anyway!  I tried to use replace in the parent tag, then invisible as attribute in the child tag.. but it did not work

how about use the field name after page string invisible.. ur one2many, or many2one field.. inside that page.. it works when i tried it <field name="one2many field inside the page " invisible="1"">..

Avatar
Yao
-

thx a lot for trying to help! Finally I found a way to make it work! :] <page string="Sales" position="attributes"> <attribute name='invisible'>1</attribute> </page>

sorry if i didnt help you :(