summaryrefslogtreecommitdiff
path: root/addons/mail/mail_message.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/mail_message.py')
-rw-r--r--addons/mail/mail_message.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 72ccdc83bb6..de8e4c68fda 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -698,8 +698,9 @@ class mail_message(osv.Model):
"""
model_record_ids = {}
for id in msg_ids:
- if msg_val[id]['model'] and msg_val[id]['res_id']:
- model_record_ids.setdefault(msg_val[id]['model'], dict()).setdefault(msg_val[id]['res_id'], set()).add(msg_val[id]['res_id'])
+ vals = msg_val.get(id, {})
+ if vals.get('model') and vals.get('res_id'):
+ model_record_ids.setdefault(vals['model'], set()).add(vals['res_id'])
return model_record_ids
if uid == SUPERUSER_ID:
@@ -711,7 +712,7 @@ class mail_message(osv.Model):
partner_id = self.pool['res.users'].browse(cr, SUPERUSER_ID, uid, context=None).partner_id.id
# Read mail_message.ids to have their values
- message_values = dict.fromkeys(ids)
+ message_values = dict.fromkeys(ids, {})
cr.execute('SELECT DISTINCT id, model, res_id, author_id, parent_id FROM "%s" WHERE id = ANY (%%s)' % self._table, (ids,))
for id, rmod, rid, author_id, parent_id in cr.fetchall():
message_values[id] = {'model': rmod, 'res_id': rid, 'author_id': author_id, 'parent_id': parent_id}
@@ -745,10 +746,10 @@ class mail_message(osv.Model):
], context=context)
notified_ids = [notification.message_id.id for notification in not_obj.browse(cr, SUPERUSER_ID, not_ids, context=context)]
elif operation == 'create':
- for doc_model, doc_dict in model_record_ids.items():
+ for doc_model, doc_ids in model_record_ids.items():
fol_ids = fol_obj.search(cr, SUPERUSER_ID, [
('res_model', '=', doc_model),
- ('res_id', 'in', list(doc_dict.keys())),
+ ('res_id', 'in', list(doc_ids)),
('partner_id', '=', partner_id),
], context=context)
fol_mids = [follower.res_id for follower in fol_obj.browse(cr, SUPERUSER_ID, fol_ids, context=context)]
@@ -759,9 +760,9 @@ class mail_message(osv.Model):
other_ids = other_ids.difference(set(notified_ids))
model_record_ids = _generate_model_record_ids(message_values, other_ids)
document_related_ids = []
- for model, doc_dict in model_record_ids.items():
+ for model, doc_ids in model_record_ids.items():
model_obj = self.pool[model]
- mids = model_obj.exists(cr, uid, doc_dict.keys())
+ mids = model_obj.exists(cr, uid, list(doc_ids))
if hasattr(model_obj, 'check_mail_message_access'):
model_obj.check_mail_message_access(cr, uid, mids, operation, context=context)
else: