[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
1 changed files with 10 additions and 4 deletions

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) {