Odoo Help


How to disable Save or Discard in ODOO Html report

on 10/30/15, 12:56 AM 814 views

I creating a QWEB html report, it has a option save or discard container I dont want this how to remove this in Odoo 9


Axel Mendoza

--Axel Mendoza--
| 7 7 8
Camaguey, Cuba
--Axel Mendoza--

DevOps - Full stack - Software Architect - Developer - Technology Integrator

I could help you to develop anything and solve complex problems based on technologies, integrations and tricky stuffs mostly in Python with OpenERP/Odoo, Zato, Django and many others frameworks programming languages and technologies.

I offers consulting services to anyone with an unanswered questions or needs for customizations. Think about it, maybe it's better to have an expert to solve your issues and projects than having a full time employee trying to understand what to do an how

Reach me at aekroft@gmail.com

Axel Mendoza
On 10/30/15, 2:50 AM

You need to redefine what it does /openerp/addons/report/static/src/js/qwebactionmanager.js

Like this in your own module js

odoo.define('module.report', function (require) {

var ActionManager = require('web.ActionManager');
var core = require('web.core');
var crash_manager = require('web.crash_manager');
var framework = require('web.framework');
var session = require('web.session');

var _t = core._t;
var wkhtmltopdf_state;

var trigger_download = function(session, response, c, action, options) {
url: '/report/download',
data: {data: JSON.stringify(response)},
complete: framework.unblockUI,
error: c.rpc_error.bind(c),
success: function(){
if (action && options && !action.dialog) {

ir_actions_report_xml: function(action, options) {
var self = this;
action = _.clone(action);
_t = core._t;

// QWeb reports
if ('report_type' in action && (action.report_type == 'qweb-html' || action.report_type == 'qweb-pdf' || action.report_type == 'controller')) {
var report_url = '';
switch (action.report_type) {
case 'qweb-html':
report_url = '/report/html/' + action.report_name;
case 'qweb-pdf':
report_url = '/report/pdf/' + action.report_name;
case 'controller':
report_url = action.report_file;
report_url = '/report/html/' + action.report_name;

// generic report: no query string
// particular: query string of action.data.form and context
if (!('data' in action) || !(action.data)) {
if ('active_ids' in action.context) {
report_url += "/" + action.context.active_ids.join(',');
} else {
report_url += "?options=" + encodeURIComponent(JSON.stringify(action.data));
report_url += "&context=" + encodeURIComponent(JSON.stringify(action.context));

var response = new Array();
response[0] = report_url;
response[1] = action.report_type;
var c = crash_manager;

if (action.report_type == 'qweb-html') {
window.open(report_url, '_blank', 'scrollbars=1,height=900,width=1280');
} else if (action.report_type === 'qweb-pdf') {
// Trigger the download of the pdf/controller report
(wkhtmltopdf_state = wkhtmltopdf_state || session.rpc('/report/check_wkhtmltopdf')).then(function (presence) {
// Fallback on html if wkhtmltopdf is not installed or if OpenERP is started with one worker
if (presence === 'install') {
self.do_notify(_t('Report'), _t('Unable to find Wkhtmltopdf on this \
system. The report will be shown in html.<br><br><a href="http://wkhtmltopdf.org/" target="_blank">\
wkhtmltopdf.org</a>'), true);
report_url = report_url.substring(12);
window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
} else if (presence === 'workers') {
self.do_notify(_t('Report'), _t('You need to start OpenERP with at least two \
workers to print a pdf version of the reports.'), true);
report_url = report_url.substring(12);
window.open('/report/html/' + report_url, '_blank', 'height=768,width=1024');
} else if (presence === 'upgrade') {
self.do_notify(_t('Report'), _t('You should upgrade your version of\
Wkhtmltopdf to at least 0.12.0 in order to get a correct display of headers and footers as well as\
support for table-breaking between pages.<br><br><a href="http://wkhtmltopdf.org/" \
target="_blank">wkhtmltopdf.org</a>'), true);
return trigger_download(self.session, response, c, action, options);
} else if (action.report_type === 'controller') {
return trigger_download(self.session, response, c, action, options);
} else {
return self._super(action, options);


Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 10/30/15, 12:56 AM
Seen: 814 times
Last updated: 10/30/15, 3:00 AM