在odoo

时间:2015-08-11 11:22:29

标签: python odoo openerp-7 odoo-8 openerp-8

我通过在(button表单视图)中使用继承在作业中创建了hr.recruitment,我怎样才能打开另一个模块(" Resumes and Letters -sub菜单在人力资源中&# 34;)在按钮点击事件完成期间的form_view。我的目标是我只想在完成此点击事件时打开该表单。

有可能解决吗?需要帮助

2 个答案:

答案 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>来打开特定记录