Когда Odoo запускает действие загрузки отчета , он проверяет, установлен ли атрибут close_on_report_download
action на true
, если да, он вернет действие типа ir.actions.act_window_close
, которое закроет мастер .
@api.multi
def print_pdf(self):
action = self.env.ref('customer_products.pdf_products').report_action(self)
action.update({'close_on_report_download': True})
return action
Изменить:
Вы можете реализовать тот же logi c, переопределить QWEBActionManager и проверить если опция передана через определение действия, и если да, закройте окно.
var ActionManager = require('web.ActionManager');
var session = require('web.session');
ActionManager.include({
ir_actions_report: function (action, options) {
var self = this;
return $.when(this._super.apply(this, arguments), session.is_bound).then(function() {
if (action && action.report_type === 'qweb-pdf' && action.close_on_report_download) {
return self.do_action({ type: 'ir.actions.act_window_close' });
}
});
},
});