场景描述:
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">
(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>