扩展 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:

(视物品种类而定)

顺便说一句,你的模块的 objective 是什么?

亲切的问候。