You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自定义模块中使用JSON定制Odoo 17销售仪表盘以隐藏特定区域?

如何在自定义模块中使用JSON定制Odoo 17销售仪表盘以隐藏特定区域?

嘿,我来帮你搞定这个Odoo 17销售仪表盘的定制问题!要隐藏特定区域,咱们得通过自定义模块来覆盖原仪表盘的JSON配置,具体步骤如下:

1. 准备自定义模块(如果还没有的话)

首先得有自己的自定义模块,要是还没创建,先搭好基础结构:

  • 新建模块目录,比如custom_sales_dashboard
  • 在模块根目录创建__manifest__.py,里面要包含依赖的核心模块:
{
    'name': 'Custom Sales Dashboard',
    'version': '1.0',
    'depends': ['spreadsheet_dashboard', 'sale'],
    'data': [
        'data/xml/dashboard.xml',
    ],
    'installable': True,
    'auto_install': False,
}
  • 创建对应的data/files和data/xml目录,分别用来放自定义的JSON仪表盘文件和XML配置文件。

2. 复制原销售仪表盘的JSON文件

别直接修改Odoo核心模块的文件,咱们把原销售仪表盘的JSON复制到自己模块里:

  • 找到Odoo核心模块spreadsheet_dashboard_sale下的sales_dashboard.json文件,路径大概是addons/spreadsheet_dashboard_sale/data/files/sales_dashboard.json
  • 把这个文件复制到你自定义模块的data/files目录下,命名可以保持原样,或者改成custom_sales_dashboard.json都行。

3. 编辑JSON文件隐藏特定区域

打开复制过来的JSON文件,找到你要隐藏的区域对应的配置项:

  • Odoo的仪表盘JSON里,每个可视化区域(比如卡片、图表、列表)都是一个widget,或者属于某个sheet下的元素
  • 找到目标区域的配置段,把它的visible属性改成false;如果找不到visible属性,也可以直接删除对应的widget配置块
  • 举个例子,假设你要隐藏“我的销售订单”这个区域,找到类似下面的配置,修改visible值:
{
  "id": "my_sales_orders_widget",
  "type": "list",
  "visible": false,  // 把这里改成false
  "position": {...},
  "config": {...}
}
  • 编辑完后保存JSON文件,注意格式要正确,不然仪表盘可能加载失败。

4. 在XML中重写原仪表盘记录

接下来要让Odoo用咱们自定义的JSON文件替换原销售仪表盘的配置,在自定义模块的data/xml/dashboard.xml里添加如下代码:

<odoo>
    <record id="spreadsheet_dashboard_sales" model="spreadsheet.dashboard">
        <field name="name">Sales</field>
        <!-- 这里指定你自定义模块里的JSON文件路径 -->
        <field name="spreadsheet_binary_data" type="base64" file="custom_sales_dashboard/data/files/sales_dashboard.json"/>
        <field name="dashboard_group_id" ref="spreadsheet_dashboard.spreadsheet_dashboard_group_sales"/>
        <field name="group_ids" eval="[Command.link(ref('sales_team.group_sale_manager'))]"/>
        <field name="sequence">100</field>
    </record>
</odoo>

注意:这里的id要和原仪表盘的记录ID完全一致(spreadsheet_dashboard_sales),这样Odoo才会用咱们的配置覆盖原有的。

5. 升级模块并测试

最后一步就是升级你的自定义模块:

  • 登录Odoo后台,找到“应用”模块,搜索你的自定义模块(比如Custom Sales Dashboard)
  • 点击“升级”按钮,等待模块升级完成
  • 刷新销售仪表盘页面,你会发现目标区域已经被隐藏了!

一些小提示

  • 要是不确定JSON里哪个对应目标区域,可以先在仪表盘里右键检查元素,或者导出当前仪表盘的配置(Odoo 17支持在仪表盘编辑模式下导出JSON)
  • 编辑JSON时最好用带语法高亮的编辑器,避免格式错误
  • 不要直接修改核心模块的文件,否则Odoo升级后你的修改会丢失

备注:内容来源于stack exchange,提问作者sps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:48:05