在我的模块中,我想在树状视图中创建一个按钮,显示按月分组的项目。因此,要创建此按钮,我添加了以下代码:
<t t-extend="ListView">
<t t-jquery=".o_list_view" t-operation="before">
<button type="button" class="btn btn-primary btn-sm oe_my_own_button" accesskey="c">
<t>Month</t>
</button>
</t>
</t>
我添加了这个javascript:
odoo.define('randa_gamification.filter', function (require) {
"use strict";
var ListView = require('web.ListView');
ListView.include({
render_buttons: function($node) {
var self = this;
this._super($node);
this.$buttons.on('click', '.oe_my_own_button', this.proxy('custom_button_view_action'));
},
custom_button_view_action: function () {
this.do_action({
type: "ir.actions.act_window",
res_model: "gamification.goal",
view_type : 'tree',
view_mode : 'form,tree',
context : '{"search_default_group_by_month": True}',
});
}
});
});
我在assets_backend模板中实现了这段代码。该按钮已添加到我的视图中,但它不会运行该操作。 谢谢。
答案 0 :(得分:1)
为此,您需要使用一点Javascript:
ListView.include({
render_buttons: function($node) {
var self = this;
this._super($node);
this.$buttons.find('.oe_my_own_button').click(this.proxy('custom_button_view_action'));
},
custom_button_view_action: function () {
this.do_action({
type: "ir.actions.act_window",
res_model: "gamification.goal",
views: [[false,'form']],
target: 'new',
view_type : 'form',
view_mode : 'form',
});
}
});
<强>更新强>
我正在使用不同的模板,主要是因为它使我的Javascript代码更简单。
<t t-extend="ListView.buttons">
<t t-jquery="button.o_list_button_add" t-operation="before">
<button type="button" class="btn btn-primary btn-sm oe_my_own_button" accesskey="c">
<t>Month</t>
</button>
</t>
</t>
请注意,您需要在按钮中添加oe_my_own_button
课程。
答案 1 :(得分:-1)
您可以通过在模块中定义搜索视图来创建组合,如下所示:
<record id="view_id" model="ir.ui.view">
<field name="name">view.name</field>
<field name="model">model.name</field>
<field name="arch" type="xml">
<search string="">
<field name="month"/>
<group expand="0" string="Group By">
<filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by': 'month'}"/>
</group>
</search>
</field>
</record>