odoo开发笔记 -- 如何隐藏视图界面的创建、导入、导出、复制、删除

场景描述:

     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>

 

posted @ 2020-01-03 10:11  hello-Jesson  阅读(3448)  评论(0编辑  收藏  举报