[IMP] mail: check if the new email recipient already exist or not, and fix _api

bzr revid: chm@openerp.com-20121221121144-o8pbya2rc7v471y0
This commit is contained in:
Christophe Matthieu 2012-12-21 13:11:44 +01:00
parent 2b8374f5ea
commit 8972f7b334
3 changed files with 24 additions and 20 deletions

View File

@ -784,7 +784,7 @@ class mail_thread(osv.AbstractModel):
new_partner_ids |= set(part_ids)
if new_partner_ids:
self.message_subscribe(cr, uid, new_partner_ids, part_ids, context=context)
self.message_subscribe(cr, uid, [thread_id], list(new_partner_ids), context=context)
partner_ids = set(kwargs.pop('partner_ids', [])) | set(new_partner_ids)

View File

@ -567,25 +567,30 @@ openerp.mail = function (session) {
check_recipient_partners: function (emails) {
var self = this;
var deferreds = [];
var ds_partner = new session.web.DataSetSearch(this, 'res.partner');
_.each(emails, function (email) {
var deferred = $.Deferred();
var pop = new session.web.form.FormOpenPopup(this);
pop.show_element(
'res.partner',
0,
{
'default_email': email,
'force_email': true,
'ref': "compound_context",
},
{
title: _t("Please complete partner's informations"),
ds_partner.call('search', [[['email', '=', email]]]).then(function (partner_ids) {
if (!partner_ids.length) {
var deferred = $.Deferred();
var pop = new session.web.form.FormOpenPopup(this);
pop.show_element(
'res.partner',
0,
{
'default_email': email,
'force_email': true,
'ref': "compound_context",
},
{
title: _t("Please complete partner's informations"),
}
);
pop.on('write_completed, closed', self, function () {
deferred.resolve();
});
deferreds.push(deferred);
}
);
pop.on('write_completed, closed', self, function () {
deferred.resolve();
});
deferreds.push(deferred);
});
return $.when.apply( $, deferreds );
},
@ -1587,7 +1592,7 @@ openerp.mail = function (session) {
}
this.domain = this.node.params && this.node.params.domain || [];
if (!this.__parentedParent.is_action_enabled('edit')) {
this.node.params.show_link = false;
}

View File

@ -132,9 +132,8 @@
</t>
</div>
<div class="oe_emails_from" t-if="widget.emails_from.length">
Add this contact's email on recipient and follower :
<t t-foreach='widget.emails_from' t-as='email_from'>
<label><input type="checkbox" t-att-checked="email_from[1] ? 'checked' : undefind" t-att-data="email_from[0]"/> <t t-raw="email_from[0]"/></label>
<label title="Add them into recipients and followers"><input type="checkbox" t-att-checked="email_from[1] ? 'checked' : undefind" t-att-data="email_from[0]"/> <t t-raw="email_from[0]"/></label>
</t>
</div>
</t>