OpenERP(XML) - 根据访问权限组隐藏视图

时间:2014-02-28 10:16:33

标签: xml view hide openerp

我需要隐藏我为没有特定访问权限组的用户创建的视图。我知道我可以对我在视图中添加的每个字段使用groups属性,因此这些用户不会看到它。但这是多余的,因为我需要隐藏该视图中的每个字段。所以也许有一些方法我可以隐藏整个视图?在此示例中,它隐藏了每个字段,因为为这些字段添加了组。

   <record id="view_partner_additional_view" model="ir.ui.view">
        <field name="name">res.partner.patient.form.inherit</field>
        <field name="model">res.partner</field>
        <field name="priority">2</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
           <label for="is_company" string="Is a Company?" position="after">
                <field name="is_something"                          
                    attrs="{'invisible': [('is_company','=',True)]}" 
                    groups="some_grp"/>             
                <field name="is_something2" 
                    attrs="{'invisible': [('is_company','=',False)]}" 
                    groups="some_grp"/>                 
           </label>
        </field>
    </record>

是否有可能以某种方式包装整个视图并定义它对于没有'some_grp'访问权限组的用户是不可见的?我的意思是我需要添加一次groups属性,而不是每个字段。我尝试用div包装所有内容,然后在那里添加groups属性,但是我收到了错误,因为你不能把它包装成那样的东西。

1 个答案:

答案 0 :(得分:1)

首先创建表单视图。然后继承视图也指定组。例如,在销售订单表单视图中,我想在状态不在草稿或发送时为组用户提供只读客户参考字段。

<record id="view_order_form_cust_ref_readonly" model="ir.ui.view">
    <field name="name">sale.order.form.readonly.cust</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="groups_id" eval="[(6, 0, [ref('base.group_user') ])]"/>
    <field name="arch" type="xml">
        <field name='client_order_ref'" position="attributes">
            <attribute name="attrs">{'readonly':[('state','not in',['draft','sent'])]}</attribute>
        </field>
    </field>
</record>

在您的情况下,首先创建一个对所有用户都通用的视图。然后使用组继承视图,并添加需要为指定组显示的字段。

参考How to make field readonly based on group and status?