0

私は、Webモジュールを構築するためのこのガイドに従おうとしていました: https://doc.openerp.com/trunk/web/module/

ガイドに従って次のファイルを作成しました。

// static/src/js/first_module.js
openerp.web_example = function (instance) {
    instance.web.client_actions.add('example.action', 'instance.web_example.action');
    instance.web_example.action = function (parent, action) {
        console.log("Executed the action", action);
    };
};

openerp .py

# __openerp__.py
{
    'name': "Web Example",
    'description': "Basic example of a (future) web module",
    'category': 'Hidden',
    'depends': ['web'],
    'data': ['web_example.xml'],
    'js': ['static/src/js/first_module.js'],
}

web_example.xml

<!-- web_example/web_example.xml -->
<openerp>
    <data>
        <record model="ir.actions.client" id="action_client_example">
            <field name="name">Example Client Action</field>
            <field name="tag">example.action</field>
        </record>
        <menuitem action="action_client_example"
                  id="menu_client_example"/>
    </data>
</openerp>

init .py は空です。

「サンプル クライアント アクション」リンクが管理パネルのトップバーに表示されるようになりましたが、クリックすると「クライアント アクション example.action が見つかりませんでした」という通知が表示されます。

ガイドのコードと似ていることを確認するために、コードを数回チェックしました。些細なエラーに気が付かないだけですか、誤解があるのでしょうか、それとも何が問題なのですか? init .py ファイルに何かあるはずですか? はいの場合、何ですか?

4

3 に答える 3

4

v8 では、静的ファイルの追加は v7 とは異なります。コア ビューを継承するビューで静的ファイルを定義する必要があります。1. モジュール フォルダー内に、views という名前のフォルダーを作成します。 2. 次の名前のファイルを作成します: you_module_name.xml 3. openerp.pyに次を追加: 'data': ['views/you_module_name.xml'] 4. you_module_name.xml に次を追加:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <template id="assets_backend" name="you_module_name assets" inherit_id="web.assets_backend">
        <xpath expr="." position="inside">
            <link rel="stylesheet" href="/you_module_name/static/src/css/you_module_name.css"/>
            <script type="text/javascript" src="/you_module_name/static/src/js/you_module_name.js"></script>
        </xpath>
    </template>
</data>

于 2014-10-23T09:31:14.323 に答える
3

方法が見つからない場合は、以下の OpenERP8/odoo の手順に従ってください。以下の内容をモジュールに追加しますweb_example

web_example

└──ビュー

  └──document.xml

以下document.xmlに追加します。

<data>
    <template id="web_example_assets_backend" name="web_example assets" inherit_id="web.assets_backend">`enter code here`
        <xpath expr="." position="inside">
            <script type="text/javascript" src="/web_example/static/src/js/first_module.js"></script>
        </xpath>
    </template>
</data>

次に、 openerp .pyを変更します

openerp .py

{

'name': "Web Example",
'description': "Basic example of a (future) web module",
'category': 'Hidden',
'depends': ['web'],
'data': ['web_example.xml','views/document.xml'],

}

それでおしまい。これで、jsファイルが にロードされましたv8/odoo。:)

cssファイルを追加するのと同じ方法document.xml

ありがとうございました。

于 2014-08-13T09:03:54.517 に答える
0

私は Web クライアントの構築に最初の一歩を踏み出しており、昨日このチュートリアルを試しました。私の答えが正しいかどうかはわかりませんが、モジュールの名前は「web_example」ですか? そうでない場合は、js ファイルでモジュールの名前を使用してインスタンス化する必要があります。(それは私にとってはうまくいき、チュートリアルを完了し、タイマーが機能しました)。

幸運を!

于 2014-06-04T08:36:01.947 に答える