diff --git a/addons/web_flectra/data/ir_config_param_data.xml b/addons/web_flectra/data/ir_config_param_data.xml index 213a7934b2..b3c246273d 100644 --- a/addons/web_flectra/data/ir_config_param_data.xml +++ b/addons/web_flectra/data/ir_config_param_data.xml @@ -11,5 +11,10 @@ Yjg3ZDEwNmUtMmMwMC00OGFjLWJjZWUtMDYwMTcwY2Y4YzNm + + web_flectra.allow_suggested_recipient + True + + \ No newline at end of file diff --git a/addons/web_flectra/models/__init__.py b/addons/web_flectra/models/__init__.py index 9c43dd8900..9398289296 100644 --- a/addons/web_flectra/models/__init__.py +++ b/addons/web_flectra/models/__init__.py @@ -5,3 +5,4 @@ from . import res_company from . import res_users from . import scss_editor from . import res_partner +from . import res_config diff --git a/addons/web_flectra/models/res_config.py b/addons/web_flectra/models/res_config.py new file mode 100644 index 0000000000..ae20ea6161 --- /dev/null +++ b/addons/web_flectra/models/res_config.py @@ -0,0 +1,18 @@ +from flectra import models, fields + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + allow_suggested_recipient = fields.Boolean(string='Allow Suggested Recipient', + config_parameter='web_flectra.allow_suggested_recipient') + + +class IrHttp(models.AbstractModel): + _inherit = 'ir.http' + + def session_info(self): + res = super(IrHttp, self).session_info() + res['allow_suggested_recipient'] = self.env['ir.config_parameter'].sudo().\ + get_param('web_flectra.allow_suggested_recipient') + return res diff --git a/addons/web_flectra/static/src/js/components/composer_suggested_recipient.js b/addons/web_flectra/static/src/js/components/composer_suggested_recipient.js new file mode 100644 index 0000000000..47cfd29339 --- /dev/null +++ b/addons/web_flectra/static/src/js/components/composer_suggested_recipient.js @@ -0,0 +1,22 @@ +flectra.define('web_flectra/static/src/components/composer_suggested_recipient.js', function (require) { +'use strict'; + + const ComposerSuggestedRecipient = require('mail/static/src/components/composer_suggested_recipient/composer_suggested_recipient.js'); + const ComposerSuggestedRecipientList = require('mail/static/src/components/composer_suggested_recipient_list/composer_suggested_recipient_list.js'); + const session = require('web.session'); + + class WebComposerSuggestedRecipient extends ComposerSuggestedRecipient{ + get suggestedRecipientInfo() { + if(session.allow_suggested_recipient){ + return super.suggestedRecipientInfo; + } else { + return false; + } + } + } + + ComposerSuggestedRecipientList.components = { + ...ComposerSuggestedRecipientList.components, + ComposerSuggestedRecipient: WebComposerSuggestedRecipient + } +}); \ No newline at end of file diff --git a/addons/web_flectra/static/src/js/components/thread.js b/addons/web_flectra/static/src/js/components/thread.js new file mode 100644 index 0000000000..399ab21707 --- /dev/null +++ b/addons/web_flectra/static/src/js/components/thread.js @@ -0,0 +1,17 @@ +flectra.define('web_flectra/static/src/components/thread.js', function (require) { +'use strict'; + + const { registerInstancePatchModel } = require('mail/static/src/model/model_core.js'); + const session = require('web.session'); + + registerInstancePatchModel('mail.composer', 'web_flectra/static/src/components/thread.js', { + _computeRecipients() { + if(session.allow_suggested_recipient){ + return this._super(...arguments); + } else { + const recipients = [...this.mentionedPartners]; + return [['replace', recipients]]; + } + } + }); +}); \ No newline at end of file diff --git a/addons/web_flectra/views/assets.xml b/addons/web_flectra/views/assets.xml index 31e0706baa..a5be109419 100644 --- a/addons/web_flectra/views/assets.xml +++ b/addons/web_flectra/views/assets.xml @@ -38,6 +38,8 @@ +