扩展 PoS 模块 Odoo 8.x(以前的 OpenERP)?
Extending PoS Module Odoo 8.x (formely OpenERP) ?
我需要在 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",添加一个方法来填充 select "salesperson-select",我得到这个错误 "Error: QWeb2 - template['PosWidget']: Runtime Error: TypeError: dict.widget.get_list_salespersons is not a function".
为了扩展 "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 但已过时。
对我的问题的任何帮助都会有很大的帮助。非常感谢
是的,Thierry Godin 写了关于 V7 的东西,但是很多东西现在在 V8 中已经过时了。
你应该在 gitHub / OCA / POS
上检查 OCA 中的新 V8 模块
你也可以去Odoo论坛看看。
之后,如果您仍然被阻止,我可以检查您的问题。
有两种方法可以重载现有的 Odoo POS:
- https://github.com/OCA/pos/blob/8.0/pos_product_template/static/src/js/ppt.js#L74
- https://github.com/OCA/pos/blob/8.0/pos_product_template/static/src/js/ppt.js#L109
(视物品种类而定)
顺便说一句,你的模块的 objective 是什么?
亲切的问候。
我需要在 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",添加一个方法来填充 select "salesperson-select",我得到这个错误 "Error: QWeb2 - template['PosWidget']: Runtime Error: TypeError: dict.widget.get_list_salespersons is not a function".
为了扩展 "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 但已过时。
对我的问题的任何帮助都会有很大的帮助。非常感谢
是的,Thierry Godin 写了关于 V7 的东西,但是很多东西现在在 V8 中已经过时了。 你应该在 gitHub / OCA / POS
上检查 OCA 中的新 V8 模块你也可以去Odoo论坛看看。
之后,如果您仍然被阻止,我可以检查您的问题。
有两种方法可以重载现有的 Odoo POS:
- https://github.com/OCA/pos/blob/8.0/pos_product_template/static/src/js/ppt.js#L74
- https://github.com/OCA/pos/blob/8.0/pos_product_template/static/src/js/ppt.js#L109
(视物品种类而定)
顺便说一句,你的模块的 objective 是什么?
亲切的问候。