[FIX] mail: default_partner_ids

bzr revid: chm@openerp.com-20130104144833-1wf6fc00jl6vrmri
This commit is contained in:
Christophe Matthieu 2013-01-04 15:48:33 +01:00
parent e40b49a838
commit ee08ed5a57
2 changed files with 11 additions and 8 deletions

View File

@ -514,14 +514,17 @@ openerp.mail = function (session) {
// create list of new partners
this.check_recipient_partners().done(function () {
var context = {
'default_model': default_composition_mode == 'reply' ? undefined : self.context.default_model,
'default_res_id': default_composition_mode == 'reply' ? undefined : self.context.default_res_id,
'default_composition_mode': default_composition_mode,
'default_parent_id': self.id,
'default_body': mail.ChatterUtils.get_text2html(self.$el ? (self.$el.find('textarea:not(.oe_compact)').val() || '') : ''),
'default_attachment_ids': self.attachment_ids,
'default_partner_ids': _.map(_.filter(self.partners_from, function (f) {return f[1]}), function (f) {return f[0]}),
};
if (default_composition_mode != 'reply' && self.context.default_model && self.context.default_res_id) {
context.default_model = self.context.default_model;
context.default_res_id = self.context.default_res_id;
}
var action = {
type: 'ir.actions.act_window',
res_model: 'mail.compose.message',
@ -570,19 +573,19 @@ openerp.mail = function (session) {
check_recipient_partners: function () {
var self = this;
var emails = [];
var deferreds = [];
_.each(this.emails_from, function (email_from) {
if (email_from[1]) {
if (!_.find(emails, function (email) {return email[4] == email_from[0][4];})) {
emails.push(email_from[0]);
deferreds.push($.Deferred());
}
}
});
var deferreds = [];
var ds_partner = new session.web.DataSetSearch(this, 'res.partner');
this.partners_from = [];
_.each(emails, function (email) {
var deferred = $.Deferred();
deferreds.push(deferred);
var ds_partner = new session.web.DataSetSearch(this, 'res.partner');
_.each(emails, function (email, key) {
var deferred = deferreds[key];
ds_partner.call('search', [[['email', 'like', email[4]]]]).then(function (partner_ids) {
if (!partner_ids.length) {
var pop = new session.web.form.FormOpenPopup(this);
@ -611,7 +614,6 @@ openerp.mail = function (session) {
self.partners_from.push([partner_ids[0], true]);
deferred.resolve();
}
return deferred;
});
});
return $.when.apply( $, deferreds );

View File

@ -168,6 +168,7 @@ class mail_compose_message(osv.TransientModel):
reply_subject = "%s %s" % (re_prefix, reply_subject)
# get partner_ids from original message
partner_ids = [partner.id for partner in message_data.partner_ids] if message_data.partner_ids else []
partner_ids += context.get('default_partner_ids') or []
# update the result
result = {