1

したがって、基本的には、バージョン6.1からOpenERPのPOSインターフェイスに変更を加えようとしています。このビューのレイアウトは/static/src/xml/pos.xmlにあります。私が欲しいのは、自分のアドオンからこのビューを変更することです(したがって、元のposアドオンを変更しないでください)。私の知る限り、このビューを継承して変更を追加する方法はありません(またはありますか?)。そのため、モジュールを調べた後、js関数をオーバーライドして、すべての変更(元のpos.xmlのコピーですが、名前は「PointOfSale_Mine」およびその他の変更)で自分のpos.xmlを挿入しようとしています。これまでのところ、次のように独自の.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スキルとOpenERP6.1の新しいWebフレームワークに関する知識が非常に限られているため、「qweb_templateが定義されていません」というエラーが発生します。元の「render」関数が呼び出すのと同じメソッドをどのように呼び出すことができるかを本当に知りたいです(上記のコードでコメントされている私の役に立たない試みを見ることができます)。または、私のアプローチ全体が間違っていて、テンプレートに変更を導入するためのより良い方法がありますか?

前もって感謝します。どんな助けでもありがたいです。

4

1 に答える 1

0

Ok。試行錯誤の末、私はこのコードを思いついたのです。

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テンプレート全体を置き換えるわけではありませんが、現在のテンプレートを継承し、変更のみを導入するので、おそらくより良いでしょう( HTMLコードの大きなチャンクを.prepend()する必要がある場合でも)

于 2012-10-29T16:13:00.567 に答える