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

Odoo V15中如何继承web.sign_name_and_signature并修改签名模态框?

问题描述

尝试继承Odoo签名模块的模态对话框,想移除其中的「绘图」和「自动」选项,但一直没法实现——查下来发现对应的模型在web模块加载完成后被删除了。

Odoo加载文件

解决思路

遇到这种原组件被销毁导致无法直接继承的情况,你可以试试下面几种方案:

  • 直接Patch组件逻辑:不用继承,直接通过Odoo的include方法修改签名对话框的初始化逻辑,过滤掉不需要的选项。代码示例:
odoo.define('your_module.signature_dialog_patch', function(require) {
    "use strict";

    const SignatureDialog = require('signature.SignatureDialog');

    SignatureDialog.include({
        init: function(parent, options) {
            this._super(parent, options);
            // 移除绘图和自动模式选项
            this.options.modes = this.options.modes.filter(mode => mode !== 'draw' && mode !== 'auto');
        },
    });
});
  • 替换原组件:如果patch不生效,就直接重新定义一个不含「绘图」「自动」选项的签名对话框组件,然后在模块里注册替换掉原组件。
  • 调整模块加载顺序:确保你的自定义模块依赖web和signature模块,在manifest里声明:
'depends': ['web', 'signature'],

关键要保证你的修改代码在原组件被销毁前执行,这样才能生效。

内容的提问来源于stack exchange,提问作者Alain Pierre KOUAKOU

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:40:28