1

所以基本上,我试图从 6.1 版开始对 OpenERP 的 POS 接口进行修改。我看到这个视图的布局可以在 /static/src/xml/pos.xml 找到。我想要的是从我自己的插件修改这个视图(因此,不改变原来的 pos 插件),据我所知,没有办法继承这个视图来添加更改(或者是否存在?)。因此,在研究了该模块之后,我试图覆盖它的 js 函数,以便在我自己的 pos.xml 中进行所有修改(原始 pos.xml 的副本,但名称为“PointOfSale_Mine”和其他修改)。到目前为止,我已经添加了自己的 .js,如下所示:

openerp.my_pos = function(db) {


db.point_of_sale.PointOfSale = db.point_of_sale.PointOfSale.extend({

    render: function() {
        this._super.apply(this,arguments);
        return qweb_template("PointOfSale_Mine")();

        //return this._super.qweb_template("PointOfSale_Mine")();
        //return db.point_of_sale.qweb_template("PointOfSale_Mine")();
        }
    })

};

当然,由于我的 JS 技能,我收到错误“qweb_template is not defined”,而且我对 OpenERP6.1 的新 Web 框架的了解非常有限。我真的很想知道如何调用原始“渲染”函数调用的相同方法(您可以在上面的代码中看到我的无用尝试)。或者我的整个方法是错误的,并且有更好的方法将我的更改引入模板?

提前致谢。任何帮助将不胜感激。

4

1 回答 1

0

好的。经过一些试验和错误后,我想出了这个代码来解决这个问题:

openerp.my_pos = function(db) {


db.point_of_sale.PointOfSale = db.point_of_sale.PointOfSale.extend({

    render: function() {
        var rend = this._super();

        var jdoc = $(rend);
        jdoc.find('.pos-payment-container').prepend('<input type="text" value=""/>')

        return jdoc[0].outerHTML;
        }
    })

};

它不会像我最初尝试的那样替换整个 pos.xml 模板,但它可能会更好,因为您继承当前模板并仅引入您的修改(即使您必须.prepend()一大块 html 代码)

于 2012-10-29T16:13:00.567 回答