通过odoo中的点击事件弹出现有视图的窗口

PKS*_* ks 5 python openerp-7 openerp-8 odoo odoo-8

button在(hr.recruitment表单视图)中使用继承创建了一个in作业,如何在按钮点击事件完成期间打开另一个模块("人力资源中的简历和字母 - 子菜单")form_view.我的目标是我只想打开完成此单击事件时的表单.

有可能解决吗?需要帮助

小智 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',
        }
Run Code Online (Sandbox Code Playgroud)

但是当记录保存时它是可能的.如果你想在保存记录之前打开向导,你必须像这样在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);
    },
Run Code Online (Sandbox Code Playgroud)

//打开表单的方法

    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'
            });
        }
    },
});
};
Run Code Online (Sandbox Code Playgroud)

xml文件中添加按钮并id="oe_linking_e"js代码中提供您提供的任何内容.


小智 5

你可以这种方式返回表格.
在您的按钮方法中返回此字典.它将在弹出窗口中打开目标表单,

def button_method(...........):
    return {
              'name': _(some name),
              'view_type': 'form',
              "view_mode": 'form',
              'res_model': model-name,
              'type': 'ir.actions.act_window',
              'target': 'new',
              }
Run Code Online (Sandbox Code Playgroud)

你可以传入<br> 'res_id': target_id上面的字典来打开一个特定的记录