Odoo 8 (모듈 point_of_sale
)에서 JS 코드 섹션을 수정하고 싶습니다. 원래 코드는 이것이다 : Odoo 8에서 백본 JS 기능을 수정하는 방법은 무엇입니까?
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')
라인을 제거). 문제는 지금, 나는이 코드를 올바른 방법으로, 내가 만든 모듈로부터 수정하고 싶다.
<?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__.py
데이터 매개 변수를 포함) 다음과 같은 XML 파일에서 호출되는 자바 스크립트 파일을 추가 파일은 다음과 같습니다
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
이 없기 때문에 오류가 발생합니다. 내가 대신 include
의 set
와 시도,하지만 난 같은 오류 얻을 :
instance.point_of_sale.Order.set 함수가 아닌를
사람이 여기 좀 도와 주 시겠어요?
귀하의 코드가 작동! (간단한 편집으로). 대단히 감사합니다 !! – forvas