diff --git a/addons/account/static/src/js/reconciliation/reconciliation_renderer.js b/addons/account/static/src/js/reconciliation/reconciliation_renderer.js index 64787b84c4c..ec27bc54d2f 100644 --- a/addons/account/static/src/js/reconciliation/reconciliation_renderer.js +++ b/addons/account/static/src/js/reconciliation/reconciliation_renderer.js @@ -7,6 +7,7 @@ var relational_fields = require('web.relational_fields'); var basic_fields = require('web.basic_fields'); var core = require('web.core'); var time = require('web.time'); +var session = require('web.session'); var qweb = core.qweb; var _t = core._t; @@ -121,12 +122,16 @@ var StatementRenderer = Widget.extend(FieldManagerMixin, { $done.find('.button_back_to_statement').click(this._onGoToBankStatement.bind(this)); this.$el.children().hide(); // display rainbowman after full reconciliation - this.trigger_up('show_effect', { - type: 'rainbow_man', - fadeout: 'no', - message: $done, - }); - this.$el.css('min-height', '450px'); + if (session.show_effect) { + this.trigger_up('show_effect', { + type: 'rainbow_man', + fadeout: 'no', + message: $done, + }); + this.$el.css('min-height', '450px'); + } else { + $done.appendTo(this.$el); + } } if (state.notifications) { diff --git a/addons/base_setup/__manifest__.py b/addons/base_setup/__manifest__.py index cbd4a0d5323..df9fb1ec1a8 100644 --- a/addons/base_setup/__manifest__.py +++ b/addons/base_setup/__manifest__.py @@ -13,6 +13,7 @@ Shows you a list of applications features to install from. """, 'depends': ['base', 'web'], 'data': [ + 'data/base_setup_data.xml', 'views/res_config_settings_views.xml', 'views/res_partner_views.xml', ], diff --git a/addons/base_setup/data/base_setup_data.xml b/addons/base_setup/data/base_setup_data.xml new file mode 100644 index 00000000000..6499d00add4 --- /dev/null +++ b/addons/base_setup/data/base_setup_data.xml @@ -0,0 +1,9 @@ + + + + + base_setup.show_effect + True + + + diff --git a/addons/base_setup/models/__init__.py b/addons/base_setup/models/__init__.py index 9fdfb603d9f..ecb5f3ba7ea 100644 --- a/addons/base_setup/models/__init__.py +++ b/addons/base_setup/models/__init__.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import ir_http from . import res_config_settings diff --git a/addons/base_setup/models/ir_http.py b/addons/base_setup/models/ir_http.py new file mode 100644 index 00000000000..f65384adfc1 --- /dev/null +++ b/addons/base_setup/models/ir_http.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models +from odoo.http import request + + +class IrHttp(models.AbstractModel): + _inherit = 'ir.http' + + def session_info(self): + result = super(IrHttp, self).session_info() + result['show_effect'] = request.env['ir.config_parameter'].sudo().get_param('base_setup.show_effect') + return result diff --git a/addons/base_setup/models/res_config_settings.py b/addons/base_setup/models/res_config_settings.py index a781a314686..21d2087d12a 100644 --- a/addons/base_setup/models/res_config_settings.py +++ b/addons/base_setup/models/res_config_settings.py @@ -40,6 +40,7 @@ class ResConfigSettings(models.TransientModel): help="Allows to work in a multi currency environment") paperformat_id = fields.Many2one(related="company_id.paperformat_id", string='Paper format') external_report_layout = fields.Selection(related="company_id.external_report_layout") + show_effect = fields.Boolean(string="Show Effect", config_parameter='base_setup.show_effect') @api.model def get_values(self): diff --git a/addons/base_setup/views/res_config_settings_views.xml b/addons/base_setup/views/res_config_settings_views.xml index aaa5be112c1..99d43c9c18e 100644 --- a/addons/base_setup/views/res_config_settings_views.xml +++ b/addons/base_setup/views/res_config_settings_views.xml @@ -78,6 +78,17 @@ +
+
+ +
+
+
+
diff --git a/addons/web/models/ir_http.py b/addons/web/models/ir_http.py index bbe793812b9..527dfeef0fe 100644 --- a/addons/web/models/ir_http.py +++ b/addons/web/models/ir_http.py @@ -39,6 +39,7 @@ class Http(models.AbstractModel): "user_companies": {'current_company': (user.company_id.id, user.company_id.name), 'allowed_companies': [(comp.id, comp.name) for comp in user.company_ids]} if display_switch_company_menu else False, "currencies": self.get_currencies(), "web.base.url": self.env['ir.config_parameter'].sudo().get_param('web.base.url', default=''), + "show_effect": True } def get_currencies(self): diff --git a/addons/web/static/src/js/chrome/abstract_web_client.js b/addons/web/static/src/js/chrome/abstract_web_client.js index 612d04c577a..7d3f19c1639 100644 --- a/addons/web/static/src/js/chrome/abstract_web_client.js +++ b/addons/web/static/src/js/chrome/abstract_web_client.js @@ -437,7 +437,12 @@ var AbstractWebClient = Widget.extend(ServiceProviderMixin, KeyboardNavigationMi var data = e.data || {}; var type = data.type || 'rainbow_man'; if (type === 'rainbow_man') { - new RainbowMan(data).appendTo(this.$el); + if (session.show_effect) { + new RainbowMan(data).appendTo(this.$el); + } else { + // For instance keep title blank, as we don't have title in data + this.notification_manager.notify('', data.message, true); + } } else { throw new Error('Unknown effect type: ' + type); }