How to make field readonly based on group and status?

user1576199 picture user1576199 · Sep 20, 2013 · Viewed 22.4k times · Source

I want to make field readony based on group, and status.

Like i have two grops 1. Manager Group 2. User Group

If I give User Group to any user then and Status Done then field will be readonly for this user.

Hope I able to make it clear to understand

Thank

Answer

OmaL picture OmaL · Oct 2, 2013

Create a functional field of type boolean. If the logged in user is under user group and state is done, then return true. Then in the view, specify attrs="{'readonly':[('boolean_field_name','=',True)]}"

OR

First create your form view. Then inherit the view also specify the groups. for example in sale order form view, i want to make the customer reference field readonly for group user when state is not in draft or sent.

<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>