İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
4120 Görünümler

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?

Avatar
Vazgeç
En İyi Yanıt

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

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
Eki 23
5467
0
Şub 22
5174
1
Ağu 25
100
1
Nis 25
1456
1
Eyl 24
2132