我通过在(button
表单视图)中使用继承在作业中创建了hr.recruitment
,我怎样才能打开另一个模块(" Resumes and Letters -sub菜单在人力资源中&# 34;)在按钮点击事件完成期间的form_view。我的目标是我只想在完成此点击事件时打开该表单。
有可能解决吗?需要帮助
答案 0 :(得分:8)
@api.multi
def button_method(self):
return {
'type': 'ir.actions.act_window',
'name': 'form name',
'res_model': 'object name',
'res_id': id ,
'view_type': 'form',
'view_mode': 'form',
'target' : 'new',
}
但是当记录保存时可以。如果要在保存记录之前打开向导,则必须使用这样的js进行编码。
js文件中的: openerp.module_name = function(instance){
var QWeb = openerp.web.qweb;
_t = instance.web._t;
instance.web.View.include({
load_view: function(context) {
var self = this;
var view_loaded_def;
$('#oe_linking_e').click(this.on_preview_view_button);
//this is button class which call method for open your form.
return self._super(context);
},
//打开表单的方法
on_preview_view_button: function(e){
e.preventDefault();
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'
});
}
},
});
};
在xml
文件中添加按钮,并在id="oe_linking_e"
代码中提供js
。
答案 1 :(得分:5)
你可以这种方式返回表格。
在您的按钮方法中返回此字典。它将在弹出窗口中打开目标表单,
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView == self.overDueAlertView) {
// Overdue alert
} else if (alertView == self.retryPromptAlertView) {
// Retry alert
}
您可以在上面的字典中传递def button_method(...........):
return {
'name': _(some name),
'view_type': 'form',
"view_mode": 'form',
'res_model': model-name,
'type': 'ir.actions.act_window',
'target': 'new',
}
<br>
来打开特定记录