場景描述:
odoo開發過程中,有時會遇到客戶有這樣的需求: 需要將相應界面的odoo自帶的按鈕or服務器動作隱藏掉,
常見的需求就是隱藏界面的:“創建”、“導入”、“導出”、“復制”、“刪除”。。。
如何實現呢?其實odoo封裝了特定的寫法,如果客戶需求是靜態將上述功能按鈕隱藏掉,不用修改前端代碼,
加上指定的參數就可以;如果客戶需求是要根據單據的某個狀態,動態隱藏/顯示上述按鈕,則需要修改odoo前端代碼。
根據字段狀態,動態隱藏創建&編輯按鈕,參考:https://www.cnblogs.com/hellojesson/p/9035739.html
這里我們介紹下,靜態需求的實現方式。
實現方式:
開始之前,我們先簡單說明下odoo視圖幾個功能按鈕的位置。
odoo最主要的兩個視圖,Tree列表視圖和Form表單視圖,
(1)Tree列表視圖,默認顯示的功能按鈕:"創建" “導入” ,勾選相應單據記錄后,服務器動作顯示:“導出”,“刪除”。
列表視圖隱藏這些按鈕,只需在列表視圖代碼中增加相應參數即可:
<tree create="false" import="false" export="false" delete="false">
補充:隱藏導入按鈕第三方模塊 https://apps.odoo.com/apps/modules/10.0/display_import_button/
(2)Form表單視圖,默認顯示功能按鈕:“編輯”,“創建”,服務器動作顯示:“刪除”,“復制”
隱藏上述相應的按鈕,在Form views相應位置添加如下參數:
edit="false" --禁止編輯 create="false" ----禁止創建 duplicate="false" --禁止復制 delete="false" --禁止刪除
<record id="test_view_form" model="ir.ui.view"> <field name="name">test.view_form</field> <field name="model">test.test</field> <field name="type"> </field> <field name="arch" type="xml"> <form string="測試" edit="false" create="false" duplicate="false" delete="false"> <sheet> <group> <field name="user_name"/> <field name="create_date"/> </group> </sheet> </form> </field>