Я хочу изменить раздел JS-кода в Odoo 8 (модуль point_of_sale
). Исходный код это один:Как изменить функцию JS в базовой системе в Odoo 8?
function openerp_pos_models(instance, module){
...
module.Order = Backbone.Model.extend({
...
addPaymentline: function(cashregister) {
var paymentLines = this.get('paymentLines');
var newPaymentline = new module.Paymentline({},{cashregister:cashregister, pos:this.pos});
if(cashregister.journal.type !== 'cash'){
newPaymentline.set_amount(Math.max(this.getDueLeft(),0));
}
paymentLines.add(newPaymentline);
this.selectPaymentline(newPaymentline);
},
});
}
Я изменил несколько строк этого кода и изменения работают так, как я хочу (я только удалил if (cashregister.journal.type !== 'cash')
линию). Проблема в том, что теперь я хочу изменить этот код правильно, из модуля, сделанного мной.
Чтобы сделать это, я добавил файл JavaScript, который вызывается из следующего файла XML (этот последний входит в мои __openerp__.py
данные параметр):
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_backend" name="nmx_pos_ext assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/nmx_pos_ext/static/src/js/nmx_pos_ext.js"></script>
</xpath>
</template>
</data>
</openerp>
И содержание JS файл:
openerp.nmx_pos_ext = function(instance) {
var _t = instance.web._t;
instance.point_of_sale.Order.include({
addPaymentline: function(cashregister) {
var paymentLines = this.get('paymentLines');
var newPaymentline = new module.Paymentline({},{cashregister:cashregister, pos:this.pos});
newPaymentline.set_amount(Math.max(this.getDueLeft(),0));
paymentLines.add(newPaymentline);
this.selectPaymentline(newPaymentline);
},
});
}
Я обновил модуль и изменения не применяются, я получаю ошибка, потому что include
, похоже, не существует в моделях Backbone. Я попытался с set
вместо include
, но я получаю ту же ошибку:
instance.point_of_sale.Order.set не является функцией
Может кто-нибудь помочь мне здесь, пожалуйста?
Ваш код работает !! (с простым редактированием). Большое спасибо!! – forvas