答案 0 :(得分:4)
我找到了解决问题的方法!如果我使用project.project模型,我会替换create按钮。
1)我为我的按钮创建了一些js脚本( static / src / js / task_list.js )和点击监听器:
ctrl+space
2)之后我用模板创建 static / src / xml / project_button.xml ,如果我使用project.project模型,则替换“Create”按钮
openerp.project = function (instance){
var QWeb = openerp.web.qweb;
_t = instance.web._t;
var self = this;
openerp.web.ListView.include({
load_list: function(data) {
this._super(data);
if (this.$buttons) {
this.$buttons.find('.oe_new_button').off().click(this.proxy('do_the_job')) ;
console.log('Save & Close button method call...');
}
},
do_the_job: function () {
this.do_action({
type: "ir.actions.act_window",
name: "Создание нового проекта",
res_model: "project.project",
views: [[false,'form']],
target: 'current',
view_type : 'form',
view_mode : 'form',
flags: {'form': {'action_buttons': true, 'options': {'mode': 'edit'}}}
});
return {
'type': 'ir.actions.client',
'tag': 'reload',
}
}
});
}
3)之后我在web.asset_backend中添加我的js脚本(我创建文件 project / views / project.xml )
<?xml version="1.0" encoding="UTF-8"?>
<template id="template" xml:space="preserve">
<t t-extend="ListView.buttons">
<t t-jquery="button.oe_list_add" t-operation="replace">
<button t-if="widget.model == 'project.project'" class="oe_button oe_new_button oe_highlight" type="button">Создать новый проект</button>
<button t-if="widget.model != 'project.project'" class="oe_button oe_list_add oe_highlight" type="button">Создать</button>
</t>
</t>
</template>
4)最后我为 static / src / xml / project_button.xml 添加项目/ __ openerp__.py部分'qweb',为 static / src / js /添加'js' task_list.js 并将文件 views / project.xml 放在“数据”部分中。
<?xml version="1.0" encoding="utf-8"?>
<!-- vim:fdn=3:
-->
<openerp>
<data>
<template id="assets_backend" name="project assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/project/static/src/js/task_list.js"></script>
</xpath>
</template>
</data>
</openerp>
我的按钮成功替换了project.project模型中的旧按钮。