2014-02-28 74 views
2

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

<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的访问权限组的用户?我的意思是我需要添加组属性一次,而不是每个字段。我尝试用div包装所有东西,然后在那里添加groups属性,但是我得到了错误,因为你无法将所有东西都包裹起来。

+0

模型ir.ui.view上有一个groups_id字段。你试过了吗?编辑:您也可以在menuitems中隐藏菜单中的groups_id字段。 – CZoellner

+0

@CZoellner我想隐藏视图,而不是菜单。或者我不明白你的建议。 – Andrius

+0

每个视图都有字段groups_id。这个字段的帮助说:空=每个用户都可以看到这个视图;条目:只有注册的组才能看到该视图。但我测试了它,它不工作。 – CZoellner

回答

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?

+0

我想知道为什么没有办法为每个组指定一个单独的视图。为什么我必须继承? –

+1

如果你想要你可以创建独立的意见。但是您也必须创建单独的操作并为其正确工作分配每个视图 – OmaL