1
ツリービューの[作成]ボタンの前または後にボタンを追加して、別のビューのアクションを呼び出します。odooにボタンを追加するには?
しかし、ヘッダータグはxmlで作業していないので、odooのヘッダにボタンを追加しています。
ツリービューの[作成]ボタンの前または後にボタンを追加して、別のビューのアクションを呼び出します。odooにボタンを追加するには?
しかし、ヘッダータグはxmlで作業していないので、odooのヘッダにボタンを追加しています。
ListView.buttons
QWEBテンプレートを拡張する必要があります。
ボタンを追加しますstatic/src/xml
下QWEBテンプレートを定義します。
<?xml version="1.0" encoding="utf-8"?>
<template xml:space="preserve">
<t t-extend="ListView.buttons">
<t t-jquery="button.oe_list_add" t-operation="after">
<button t-if="widget.dataset.model == 'model_name'" class="oe_button oe_my_button oe_highlight" type="button">My Button</button>
</t>
</t>
</template>
利用JavaScript
ボタンのロジックを定義するために(static/src/js
下のファイルを作成します):
openerp.module_name = function(instance){
instance.web.ListView.include({
load_list: function(data) {
this._super(data);
if (this.$buttons) {
this.$buttons.find('.oe_my_button').off().click(this.proxy('do_the_job')) ;
}
},
do_the_job: function() {
this.do_action({
name: _t("View name"),
type: "ir.actions.act_window",
res_model: "object",
domain : [],
views: [[false, "list"],[false, "tree"]],
target: 'new',
context: {},
view_type : 'list',
view_mode : 'list'
});
}
});
}
新しいビューを定義します。モジュールアセットが追加されます(module_name_view.xml):
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_backend_module_name" name="module_name assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/module_name/static/src/js/script.js"></script>
</xpath>
</template>
</data>
編集__openerp__.py
と、次のセクションを追加します。詳細はBuilding Interface Extensionsで
'data': [
'module_name_view.xml',
...
],
'qweb': ['static/src/xml/*.xml'],
ルック。
どのようなビューでボタンを追加しますか? – mokiSRB
こんにちは@mokiSRB、私は、デフォルトの作成ボタンの前または後にボタンを追加したいと思います。 –
そのボタンは典型的なビュー拡張( 'ir.ui.view'レコード)に配置することはできません。要件を満たすには、odooクライアント全体(QWebビュー)を拡張する必要があります。 – CZoellner