如果不是管理员,Odoo隐藏编辑和更多按钮

时间:2016-10-27 16:04:55

标签: python-2.7 openerp odoo-8

如果连接的用户不是管理员,我正在尝试隐藏用户表单中的编辑和更多按钮。 这是我的代码

 <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

2 个答案:

答案 0 :(得分:0)

不幸的是,你尝试使用表达式是不可能的,而是我会建议用户&#34;自定义视图&#34;

  1. 用户表单编辑=&#34; false&#34;这将使所有用户的编辑按钮消失(res.users.form)。
  2. 现在转到Customized Views下的Settings/Technical/User Interface/Customized Views,您需要处于debug模式才能看到此菜单。
  3. Customized Views下创建新记录,然后选择用户:Admin并在原始视图中选择:res.users.form并在View Architecture 中复制并削减原始视图查看体系结构,然后只需删除编辑=&#39;假&#39;
  4. 我相信这应该有所帮助。

    贝斯茨

答案 1 :(得分: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后端的工作方式总是更好