summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Legros <jle@odoo.com>2016-04-05 15:29:19 +0200
committerJulien Legros <jle@odoo.com>2016-04-05 18:19:52 +0200
commitec444bf09149f080d239fa07721165bb98b6db34 (patch)
tree9e36e670a8750cc7b15e22bd1ea4a8226b1f06ab
parent44c0245a6a31a826843573f45b41b1c7252258f7 (diff)
[FIX] calendar: mail_thread overrides
Since calendar_event overrides read to handle virtual ids, we need to do the same for mail_thread _get_message_unread and _get_message_needaction methods. Otherwise virtual ids may end up in the cache and browsing them would fail.
-rw-r--r--addons/calendar/calendar.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/addons/calendar/calendar.py b/addons/calendar/calendar.py
index 9abd6cb8596..00c575f7ef4 100644
--- a/addons/calendar/calendar.py
+++ b/addons/calendar/calendar.py
@@ -1381,6 +1381,30 @@ class calendar_event(osv.Model):
('user_id', '=', uid),
]
+ @api.multi
+ def _get_message_unread(self):
+ id_map = {x: calendar_id2real_id(x) for x in self.ids}
+ real = self.browse(set(id_map.values()))
+ super(calendar_event, real)._get_message_unread()
+ for event in self:
+ if event.id == id_map[event.id]:
+ continue
+ rec = self.browse(id_map[event.id])
+ event.message_unread_counter = rec.message_unread_counter
+ event.message_unread = rec.message_unread
+
+ @api.multi
+ def _get_message_needaction(self):
+ id_map = {x: calendar_id2real_id(x) for x in self.ids}
+ real = self.browse(set(id_map.values()))
+ super(calendar_event, real)._get_message_needaction()
+ for event in self:
+ if event.id == id_map[event.id]:
+ continue
+ rec = self.browse(id_map[event.id])
+ event.message_needaction_counter = rec.message_needaction_counter
+ event.message_needaction = rec.message_needaction
+
@api.cr_uid_ids_context
def message_post(self, cr, uid, thread_id, context=None, **kwargs):
if isinstance(thread_id, basestring):