1. 程式人生 > >Odoo8.0根據資料的條件來控制畫面上的修改按鈕顯示

Odoo8.0根據資料的條件來控制畫面上的修改按鈕顯示

今天有網友在問,當達到某個條件的時候,資料的所有欄位都變為只讀,傳統的方法是在view或model中,逐一對每個欄位進行屬性設定,這樣比較麻煩。後來我在考慮,如果是把所有欄位都變為只讀,是不是隻要遮蔽form介面上的修改按鈕就可以了呢?只要使用者不能點修改按鈕,那相當於就是所有欄位為只讀了。

經過測試和閱讀原始碼,我們通過如下方法來實現。

然後在增加的視窗動作位置加一個上下文引數,如下例項所示。

<record id="action_easy_genes" model="ir.actions.act_window">
     <field name="name">Information</field>
     <field name="res_model">model_name</field>
     <field name="view_type">form</field>
     <field name="view_mode">tree,form</field>
     <field name="context">{'form_no_edit':[('state','=','draft'),('sex','=','F')]}</field>
     <field name="help" type="html">
         <p class="oe_view_nocontent_create">
         </p>
         <p>
             Click to start creating a new
         </p>
     </field>
</record>

上下文中form_no_edit是固定的,後面加一個條件,條件的設定規範符合通用的domain規範即可。在瀏覽記錄時,符合該條件的form檢視將不顯示“編輯”按鈕。