diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py
index 73fb148c0ed..127d1502028 100644
--- a/addons/mail/mail_mail.py
+++ b/addons/mail/mail_mail.py
@@ -108,21 +108,24 @@ class mail_mail(osv.Model):
def set_opened(self, cr, uid, ids, context=None):
""" Set as opened """
- for mail in self.browse(cr, uid, ids, context=context):
+ existing_ids = self.exists(cr, uid, ids, context=context)
+ for mail in self.browse(cr, uid, existing_ids, context=context):
if not mail.opened:
self.write(cr, uid, [mail.id], {'opened': fields.datetime.now()}, context=context)
return True
def set_replied(self, cr, uid, ids, context=None):
""" Set as replied """
- for mail in self.browse(cr, uid, ids, context=context):
+ existing_ids = self.exists(cr, uid, ids, context=context)
+ for mail in self.browse(cr, uid, existing_ids, context=context):
if not mail.replied:
self.write(cr, uid, [mail.id], {'replied': fields.datetime.now()}, context=context)
return True
def set_bounced(self, cr, uid, ids, context=None):
""" Set as bounced """
- for mail in self.browse(cr, uid, ids, context=context):
+ existing_ids = self.exists(cr, uid, ids, context=context)
+ for mail in self.browse(cr, uid, existing_ids, context=context):
if not mail.bounced:
self.write(cr, uid, [mail.id], {'bounced': fields.datetime.now()}, context=context)
return True
diff --git a/addons/mail/mail_mail_view.xml b/addons/mail/mail_mail_view.xml
index 3901a192225..9a2a178d61c 100644
--- a/addons/mail/mail_mail_view.xml
+++ b/addons/mail/mail_mail_view.xml
@@ -44,6 +44,7 @@
+
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index 9a5d3e3580d..8c51e99a94c 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -792,6 +792,7 @@ class mail_thread(osv.AbstractModel):
bounce_match = tools.bounce_re.search(email_to)
if bounce_match:
bounced_mail_id = bounce_match.group(1)
+ self.pool['mail.mail'].set_bounced(cr, uid, [bounced_mail_id], context=context)
if self.pool['mail.mail'].exists(cr, uid, bounced_mail_id):
mail = self.pool['mail.mail'].browse(cr, uid, bounced_mail_id, context=context)
bounced_model = mail.model
@@ -1426,7 +1427,8 @@ class mail_thread(osv.AbstractModel):
# update original mail_mail if exists
if type == 'email':
mail_mail_ids = self.pool['mail.mail'].search(cr, SUPERUSER_ID, [('mail_message_id', '=', parent_id)], context=context)
- self.pool['mail.mail'].set_replied(cr, SUPERUSER_ID, mail_mail_ids, context=context)
+ if mail_mail_ids:
+ self.pool['mail.mail'].set_replied(cr, SUPERUSER_ID, mail_mail_ids, context=context)
message_ids = mail_message.search(cr, SUPERUSER_ID, [('id', '=', parent_id), ('parent_id', '!=', False)], context=context)
# avoid loops when finding ancestors
diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml
index ff1dd96229e..0c86bae7e5f 100644
--- a/addons/mail/wizard/mail_compose_message_view.xml
+++ b/addons/mail/wizard/mail_compose_message_view.xml
@@ -14,6 +14,7 @@
+
@@ -32,9 +33,6 @@
context="{'force_email':True, 'show_email':True}"/>