How to hide an existing field in an OpenERP7 view?

心不动则不痛 提交于 2019-12-13 00:41:15

问题


I am trying to hide a field called street2 in an existing OpenERP7 view only if a field called is_company values True. I have to do this using inheritance, so I created a new view with a form called res.partner.extended.form, which inherits from the view I want to modify (base.view_partner_form).

To make street2 invisible, I left my inherited form this way:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record model="ir.ui.view" id="res_partner_extended_view">
            <field name="name">res.partner.extended.form</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="base.view_partner_form" />
            <field name="type">form</field>
            <field name="arch" type="xml">
                <xpath expr="/form//field[@name='street2']" position="attributes">
                    <attribute name="invisible">1</attribute>
                </xpath>
            </field>
        </record>
    </data>
</openerp>

But this way, I make the field invisible, with any condition. I need to make it invisible only if is_company values True. So I tried several ways, and I am not able to manage it. The next lines are one of my failed attempts:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record model="ir.ui.view" id="res_partner_extended_view">
            <field name="name">res.partner.extended.form</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="base.view_partner_form" />
            <field name="type">form</field>
            <field name="arch" type="xml">
                <xpath expr="/form//field[@name='street2']" position="attributes">
                    <attribute name="invisible">[('is_company', '=', 'True')]</attribute>
                </xpath>
            </field>
        </record>
    </data>
</openerp>

Anyone knows how to manage this? Am I close to the answer? Any help will be appreciated a lot. Thank you in advance.


回答1:


Try this,

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <record model="ir.ui.view" id="res_partner_extended_view">
        <field name="name">res.partner.extended.form</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="type">form</field>
        <field name="arch" type="xml">
            <field name='street2' position="attributes">
                <attribute name="attrs">{'invisible': [('is_company', '=', True)]}</attribute>
            </field>
        </field>
    </record>
</data>



来源:https://stackoverflow.com/questions/26054744/how-to-hide-an-existing-field-in-an-openerp7-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!