2016-10-27 24 views
0

我试图隐藏用户窗体中的编辑和更多按钮,如果连接的用户不是管理员。 这里是我的代码Odoo隐藏编辑和更多按钮,如果不是管理员

<xpath expr='//form[@string="Users"]' position='attributes'> 
      <attribute name="edit" >{'false':[('id', '!=', '1')]}</attribute> 
       <attribute name="more">{'false':[('id', '!=', '1')]}</attribute> 
      </xpath> 

我得到以下错误:

SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data 
+0

如果您真的想要这样的硬访问规则,您可以更改odoo的客户端,并通过使用j-query隐藏这两个“按钮”。但我不知道为什么有人对erp软件有这样的要求。 “管理员是唯一编辑记录”是没有意义的。 – CZoellner

+1

在odoo中,您可以使用管理创建用户(经理):访问权限。然后,该用户可以编辑管理信息,如密码,管理......这就是为什么我想隐藏这些按钮为管理员以外的用户。 –

+0

对不起,我只是误解了你的第一部分。这显然是有道理的。 – CZoellner

回答

0

不幸的是,你想achive是不可能的使用表达式,而我会建议用户“自定义视图”

  1. 由用户表单编辑=“false”这将使编辑按钮离开所有用户(res.users.form)。
  2. 现在去Customized Views根据Settings/Technical/User Interface/Customized Views,你需要在debug模式才能够看到这个菜单。
  3. Customized Views创建一个新的记录,并选择用户:Admin并在原始视图中进行选择:res.users.formView Architecture 复制和削减原来的景色景观建筑,只是删除编辑=“假”

这应该可以帮助我相信。

最好成绩

+0

您好@shodowsjedi,我没有在原始视图中的edit ='false'。即使我添加它,仅用于测试目的。按钮总是在那里。 –

+0

@OumarDiarra:如果您的安全规则允许其他用户编辑记录,它将显示按钮。 –

0

扩大@ shodowsjedi的答案,要达到你想要什么,你必须创建两个视图(他们基本上是相同的只是一个连接到特定的组,将显示属于用户该组)

这是你的xml文件应该怎么看

<!--original form view--> 
<record id="model_form_view" model="ir.ui.view"> 
<field name="name">your.model</field> 
<field name="model">your.model</field> 
<field name="arch" type="xml"> 
<form string="Users"> 
    <!--whatever is in your form --> 
</field> 
</record> 

<!--inherited formview to hide edit option --> 
<record id="model_form_view_noedit" model="ir.ui.view"> 
<field name="name">your.model</field> 
<field name="model">your.model</field> 
<field name="inherit_id" ref="model_form_view"/> 
<field name="groups_id" eval="[(6, 0, [ref('base.group_user') ])]"/> 
<field name="arch" type="xml"> 
    <xpath expr='//form[@string="Users"]' position='attributes'> 
     <attribute name="edit">false</attribute> 
    </xpath> 
</field> 
</record> 

它总是更好地懂得东西从后端的Odoo

工作样机
相关问题