如何在Open Erp 7中为特定组创建一个只读字段?

时间:2014-05-28 08:08:21

标签: python xml openerp openerp-7 usergroups

我有一个字段,我想让一个组中的所有用户只读它,比如base.group_userA。任何其他用户都可以编辑和保存该字段。我如何在openerp中做到这一点?我已经为所有用户设置了所有CRUD访问权限。

'WO_NOTES' : fields.text("Description"), 

in xml

<field name="WO_NOTES"/>

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,只是我想只向一个组中的用户显示字段。我通过继承视图并对特定组进行了更改来解决这个问题。

在你的情况下它应该是这样的:

<?xml version="1.0"?>
<openerp>
    <data>
<record model="ir.ui.view"  id="view_id">
    <field name="name">view.id</field>
    <field name="model">your.model</field>
    <field name="inherit_id" ref="id_of_inherited_view"/>
    <field name="groups_id" eval="[(6, 0, [ref('base.group_userA') ])]"/>
    <field name="arch" type="xml">
        <field name="WO_NOTES" position="attributes">
            <attribute name="readonly">1</attribute>
        </field>
    </field>
</record>
    </data>
</openerp>

希望这有帮助!

---一点点编辑,以澄清我的答案---

我假设你有表单视图,对所有用户都很好(WO_NOTES可以编辑给所有用户)。使用此继承,更改将仅发生在属于base.group_userA的用户,将其属性更改为只读(仅限此字段,仅限此组中的用户)。

<field name="WO_NOTES" position="attributes"> <attribute name="readonly">1</attribute></field>部分将在父视图中找到该字段并将其设为只读。 <field name="groups_id" eval="[(6, 0, [ref('base.group_userA') ])]"/>将此更改限制为指定的组。