Thibault Delavallée (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/7.0-fix-chatter-extra-emails-tde into 
lp:openobject-addons/7.0.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/7.0-fix-chatter-extra-emails-tde/+merge/141212

[FIX] Chatter: extra_emails: fixed deferreds wrongly used, leading to duplicate 
partners created when checking emails in the chatter.
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/7.0-fix-chatter-extra-emails-tde/+merge/141212
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/7.0-fix-chatter-extra-emails-tde.
=== modified file 'mail/static/src/js/mail.js'
--- mail/static/src/js/mail.js	2012-12-21 15:30:07 +0000
+++ mail/static/src/js/mail.js	2012-12-24 11:04:52 +0000
@@ -567,11 +567,14 @@
         check_recipient_partners: function (emails) {
             var self = this;
             var deferreds = [];
+            for (var i = 0; i < emails.length; i++) {
+                deferreds.push($.Deferred());
+            }
             var ds_partner = new session.web.DataSetSearch(this, 'res.partner');
             _.each(emails, function (email) {
-                ds_partner.call('search', [[['email', '=', email]]]).then(function (partner_ids) {
+                ds_partner.call('search', [[['email', 'ilike', email]]]).then(function (partner_ids) {
+                    var deferred = deferreds[_.indexOf(emails, email)];
                     if (!partner_ids.length) {
-                        var deferred = $.Deferred();
                         var pop = new session.web.form.FormOpenPopup(this);
                         pop.show_element(
                             'res.partner',
@@ -588,11 +591,14 @@
                         pop.on('write_completed, closed', self, function () {
                             deferred.resolve();
                         });
-                        deferreds.push(deferred);
-                    }
+                    }
+                    else {
+                        deferred.resolve();
+                    }
+                    return deferred;
                 });
             });
-            return $.when.apply( $, deferreds );
+            return $.when.apply( $, deferreds ).done();
         },
 
         on_message_post: function (event) {

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : openerp-dev-gtk@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to