[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
This commit is contained in:
Thibault Delavallée
2012-12-24 11:54:13 +01:00
parent f49cf3ad50
commit ff4abc7e38
+10 -4
View File
@@ -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) {