如何继承 Odoo POS 按钮

How to inherit Odoo's POS buttons

我正在尝试在 POS 按钮中添加一些功能,特别是显示为 "Validate" 的按钮。为了测试此 link https://odoo-development.readthedocs.io/en/latest/dev/pos/gui.html 中的指南是否有效,我只是添加了一个 console.log,如下所示:

odoo.define('my_module.js_file', function (require) {
    "use strict";

    var screens = require('point_of_sale.screens');

    screens.PaymentScreenWidget.include({
    init: function(parent, options) {
        this._super(parent, options);
        //My console log message
        console.log('Hello world!')
        this.pos.on('updateDebtHistory', function(partner_ids){
            this.update_debt_history(partner_ids);
      }, this);
    },
  });

但该消息仅在 POS 结束加载数据时显示一次,而不是在我按下按钮时显示。我在这里做错了什么?

要将您的代码添加到 Validate 按钮,您需要通过 include 方法修改支付屏幕小部件(您已经这样做了) .

如果您从浏览器检查按钮,您会发现它有一个 class next,用于将事件处理程序绑定到 click JavaScript事件。

示例

var screens = require('point_of_sale.screens');
var PaymentScreenWidget = screens.PaymentScreenWidget;

PaymentScreenWidget.include({

    validate_order: function(force_validation) {
        console.log('Hello world!');
        this._super(force_validation);
    },

});