我需要在Odoo 8的PoS模块中进行一些自定义。
为此,我创建了一个模块调用“cus_pos”。使用此代码,我扩展了界面:
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-extend="PosWidget">
<t t-jquery="div.pos-leftpane > div.window > div:last" t-operation="after">
<div class="payment-lines">
<div class="paymentline selected">
<!-- trigger an error <t t-esc="widget.get_list_salespersons()" /> -->
<div class="paymentline-name"> Salesperson: </div>
<select id="salesperson-select" class="paymentline-input">
</select>
</div>
</div>
</t>
</t>
</templates>
但是当我尝试扩展小部件“PosWidget”时,要添加一个方法来填充选择“salesperson-select”,我得到这个错误“错误:QWeb2 - template ['PosWidget']:运行时错误:TypeError: dict.widget.get_list_salespersons不是函数“。
为了扩展“PosWidget”我试过这个策略:
一:
openerp.cus_pos = function(instance) {
template: 'PosWidget',
var module = instance.point_of_sale;
module.PosWidget = module.PosWidget.extend({
get_list_salespersons: function() {
console.log("Hurray!!!");
}
});
}
二:
function openerp_pos_salesperson(instance, module) { //module is instance.point_of_sale
var module = instance.point_of_sale;
var QWeb = instance.web.qweb;
_t = instance.web._t;
module.SalePersonWidget = module.PosWidget.include({
template: 'PosWidget',
get_list_salespersons: function() {
console.log("Hurray!!!");
}
});
}
三:
function openerp_pos_saleperson(instance, module) { //module is instance.point_of_sale
var module = instance.point_of_sale;
var QWeb = instance.web.qweb;
_t = instance.web._t;
module.SalePersonWidget = module.PosWidget.include({
template: 'PosWidget',
get_list_salespersons: function() {
console.log("Hurray!!!");
}
});
}
(function() {
var _super = window.openerp.point_of_sale;
window.openerp.point_of_sale = function(instance) {
_super(instance);
var module = instance.point_of_sale;
openerp_pos_vendedor(instance,module);
}
})();
四:
openerp.cus_pos = function(instance) {
var module = instance.point_of_sale;
var _super_ = module.PosWidget.prototype.get_list_salespersons;
module.PosWidget.prototype.get_list_salespersons = function() {
console.log("Hurray!!!");
_super_.call(this);
};
};
搜索我找到的http://thierry-godin.developpez.com/openerp/tutorial-module-creation-pos-modification-english-version/#LI但过时的文档。
对我的问题的任何帮助都将是一个很大的帮助。非常感谢
答案 0 :(得分:3)
是的,Thierry Godin写了关于V7的东西,但现在很多东西在V8中已经过时了。 你应该在gitHub / OCA / POS上的OCA中检查新的V8模块
你也可以看看Odoo论坛。
之后,如果您仍然被阻止,我可以检查您的问题。
有两种方法可以使现有的Odoo POS超载:
(取决于对象的种类。)
顺便说一句,你的模块的目标是什么?亲切的问候。