From ff4abc7e38e1fad4b988b067e7cbc6934f49a218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 24 Dec 2012 11:54:13 +0100 Subject: [PATCH] [FIX] Chatter: extra_emails: fixed deferreds wrongly used, leading to duplicate partners created when checking emails in the chatter. bzr revid: tde@openerp.com-20121224105413-p56vhgxh5bg0rhu0 --- addons/mail/static/src/js/mail.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index 29a2e076b19..b7906821aff 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -567,11 +567,14 @@ openerp.mail = function (session) { 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 @@ openerp.mail = function (session) { 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) {