基本上,我试图在版本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")();
}
})
};
当然,我收到错误“qweb_template未定义”作为我的JS技能,而且我对OpenERP6.1新Web框架的了解非常有限。我真的想知道如何调用原始'render'函数调用的相同方法(你可以在上面的代码中看到我的无用尝试)。或者我的整个方法是错误的,并且有更好的方法将我的更改引入模板?
提前致谢。任何帮助将不胜感激。
答案 0 :(得分: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代码)