Как унаследовать POS-кнопки Odoo

Я пытаюсь добавить некоторые функции в кнопки POS, в частности кнопку, которая отображается как «Подтвердить». Чтобы проверить, соответствует ли руководство по этой ссылке 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 заканчивает загрузку данных, а не когда я нажимаю кнопку. Что я здесь делаю неправильно?


person Simon Capriles    schedule 08.04.2020    source источник


Ответы (1)


Чтобы добавить свой код на кнопку Validate, вам нужно изменить виджет экрана оплаты с помощью метода include (Вы уже сделали это).

Если вы проверите кнопку в браузере, вы обнаружите, что она имеет класс 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);
    },

});
person Kenly    schedule 12.04.2020