diff options
| author | Julien Legros <jle@odoo.com> | 2016-04-05 15:29:19 +0200 |
|---|---|---|
| committer | Julien Legros <jle@odoo.com> | 2016-04-05 18:19:52 +0200 |
| commit | ec444bf09149f080d239fa07721165bb98b6db34 (patch) | |
| tree | 9e36e670a8750cc7b15e22bd1ea4a8226b1f06ab | |
| parent | 44c0245a6a31a826843573f45b41b1c7252258f7 (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.py | 24 |
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): |
