This question has been flagged
6 Replies
8550 Views

We use only CRM modules in OpenERP

I want use all emails in OpenERP internally only, without mails sent to our customers.

How can I do it?

I can't trust in my users to manually check off the checkboxes when they send messages from lead/opportunities. It is by default checked.

Any idea?

Avatar
Discard

Hi, I know this is and old question, but I found it while googling for another issue. I think the best way to avoid this will be to just disable the email suggestion (Not actually disable, but avoid adding clients as suggested recipients). To do this, you have to overwrite the function message_get_suggested_recipients. The function is defined in the mail_thread class, but the later is supposed to be inherited for other classes (in the case of the question, crm_lead) so you can just overwrite there. The function returns a dictionary like: return {: [(,,)]} so you can just do something like: def message_get_suggested_recipients(self, cr, uid, ids, context=None): ret = dict(((x,[]) for x in ids)) return ret And this way you will just avoid adding suggested recipients as actual recipients. Obviously, this wont avoid someone manually adding a client as recipient, but it will have to be intentionally. Hope it helps!

Sorry to put this as a comment, but I was not able to post an answer nor "Conver as an anwer" I was getting, 403 Forbidden.

Best Answer

I use a custom js script that unchecked the boxes. I've change the on_toggle_quick_composer function of ThreadComposeMessage Class of mail module :

    /*---------------------------------------------------------
     * OpenERP checkboxes décochées par défaut dans le fil de discussion.
     *---------------------------------------------------------*/
openerp.paramJuliana = function(instance){
    var module2 = instance.mail // loading the namespace of the 'sample' module

    module2.ThreadComposeMessage.include({
        on_toggle_quick_composer: function (event) {
            var self = this;
            var $input = $(event.target);
            this.compute_emails_from();
            var email_addresses = _.pluck(this.recipients, 'email_address');

            var suggested_partners = $.Deferred();

            // if clicked: call for suggested recipients
            if (event.type == 'click') {
                this.is_log = $input.hasClass('oe_compose_log');
                suggested_partners = this.parent_thread.ds_thread.call('message_get_suggested_recipients', [[this.context.default_res_id]]).done(function (additional_recipients) {
                    var thread_recipients = additional_recipients[self.context.default_res_id];
                    _.each(thread_recipients, function (recipient) {
                        var parsed_email = module2.ChatterUtils.parse_email(recipient[1]);
                        if (_.indexOf(email_addresses, parsed_email[1]) == -1) {
                            self.recipients.push({
                                'checked': false,
                                'partner_id': recipient[0],
                                'full_name': recipient[1],
                                'name': parsed_email[0],
                                'email_address': parsed_email[1],
                                'reason': recipient[2],
                            })
                        }
                    });
                });
            }
            else {
                suggested_partners.resolve({});
            }

            // when call for suggested partners finished: re-render the widget
            $.when(suggested_partners).pipe(function (additional_recipients) {
                if ((!self.stay_open || (event && event.type == 'click')) && (!self.show_composer || !self.$('textarea:not(.oe_compact)').val().match(/\S+/) && !self.attachment_ids.length)) {
                    self.show_composer = !self.show_composer || self.stay_open;
                    self.reinit();
                }
                if (!self.stay_open && self.show_composer && (!event || event.type != 'blur')) {
                    self.$('textarea:not(.oe_compact):first').focus();
                }
            });

            return suggested_partners;
        },
    });

};

And I set the email @ in font bold and red by changing the template of .oe_recipients label CSS class

Avatar
Discard
Best Answer

This is exactly what I need to do since it is very dangerous and easy to send internal conversations to potential customers in the middle of a negotiation. I need to disable this checkbox and change the default status to uncheked. Can someone please help by pointing me the steps or the path to edit this file? I am new to OpenERP.

Avatar
Discard
Best Answer

You could delete the outgoing mail server. That way the system won't send any mails. And then just use the messaging inside OERP for the users internally.

Avatar
Discard
Author

But then I'll lost the capability of send mails to my users or between them too.

Best Answer

Take the latest revision, it has a "Log a note" feature instead of the "Send a message" one.

Avatar
Discard
Author

Thank you. I see that, but I'm looking for a way to disable the "Send a message" button.

Could you please explain how this disables email sending globally, thanks.

Best Answer

@Fabien Pinckaers

This is a serious issue that we are also facing, Please provide us a better solution for this, as sending a notification to our real customers for each and every internal conversation between our employs(openerp users).

Avatar
Discard

Hi, I know this is and old question, but I found it while googling for another issue. I think the best way to avoid this will be to just disable the email suggestion (Not actually disable, but avoid adding clients as suggested recipients). To do this, you have to overwrite the function message_get_suggested_recipients. The function is defined in the mail_thread class, but the later is supposed to be inherited for other classes (in the case of the question, crm_lead) so you can just overwrite there. The function returns a dictionary like: return {: [(,,)]} so you can just do something like: def message_get_suggested_recipients(self, cr, uid, ids, context=None): ret = dict(((x,[]) for x in ids)) return ret And this way you will just avoid adding suggested recipients as actual recipients. Obviously, this wont avoid someone manually adding a client as recipient, but it will have to be intentionally. Hope it helps!