تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
4096 أدوات العرض

This is how I print a report:

def yoursister(self, cr, uid, ids, context=None):
    """
    """
    return {
        'type': 'ir.actions.report.xml',
        'report_name': 'trescloud_ats_2013_report',
        'datas': {
            'model': 'sri.ats.2013',
            'res_ids': ids
        }
}

This method is executed from a wizard. How do I *also* avoid the wizard being closed?

الصورة الرمزية
إهمال
أفضل إجابة

That couldn't be done in Odoo without an js extension, specifically you need to extend the js class "instance.web.ActionManager" to add a new action type with the same code of the ir_actions_report_xml. The following code need to be loaded in a js file and does the job by creating the action ir_actions_report_xml_no_close with the close dialog lines removed:

instance.web.ActionManager.include({
ir_actions_report_xml_no_close: function(action, options) {
var self = this;
instance.web.blockUI();
action = _.clone(action);
var eval_contexts = ([instance.session.user_context] || []).concat([action.context]);
action.context = instance.web.pyeval.eval('contexts',eval_contexts);
// iOS devices doesn't allow iframe use the way we do it,
// opening a new window seems the best way to workaround
if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
var params = {
action: JSON.stringify(action),
token: new Date().getTime()
};
var url = self.session.url('/web/report', params);
instance.web.unblockUI();
$('<a href="'+url+'" target="_blank"></a>')[0].click();
return;
}
var c = instance.webclient.crashmanager;
return $.Deferred(function (d) {
self.session.get_file({
url: '/web/report',
data: {action: JSON.stringify(action)},
complete: instance.web.unblockUI,
success: function(){
d.resolve();
},
error: function () {
c.rpc_error.apply(c, arguments);
d.reject();
}
});
});
}
});

To use the new action you just need to change a little your return action in your method to return:

return {
'type': 'ir.actions.report.xml_no_close',
'report_name': 'trescloud_ats_2013_report',
'datas': {
'model': 'sri.ats.2013',
'res_ids': ids
}
}

Hope this helps

الصورة الرمزية
إهمال
المنشورات ذات الصلة الردود أدوات العرض النشاط
1
أكتوبر 23
5454
0
فبراير 22
5161
1
أبريل 25
1420
1
سبتمبر 24
2094
1
يوليو 24
1875