16

readonlyグループ、ステータスに基づいてフィールドを作成したい。私には2つのグループがあるように:

  1. マネージャーグループ
  2. ユーザー・グループ

User Group任意のユーザーに与えてからStatusDoneに変更すると、フィールドはreadonlyこのユーザー用になります。

わかりやすく説明できてよかったです。ありがとう。

4

4 に答える 4

32

ブール型の機能フィールドを作成します。ログインしたユーザーがユーザー グループに所属し、状態が完了の場合は、true を返します。次に、ビューで指定しますattrs="{'readonly':[('boolean_field_name','=',True)]}"

また

最初にフォーム ビューを作成します。次に、ビューを継承し、グループも指定します。たとえば、販売注文フォーム ビューで、状態が下書きまたは送信されていないときに、グループ ユーザーに対して顧客参照フィールドを読み取り専用にしたい。

<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>
于 2013-10-02T18:22:11.273 に答える
4

py のように、OpenERP のフィールド レベルでアクセス ルールを適用できます。

'name': fields.char('Name', size=128, required=True, select=True,
 read=['base.group_user'] ),

xml のステータスの場合:

<field name="name " attrs="{'readonly': [('state','=','done')]}"/>
于 2013-09-20T11:17:30.823 に答える