summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorJulien Castiaux <juc@odoo.com>2019-05-08 09:56:32 +0000
committerJulien Castiaux <juc@odoo.com>2019-05-08 09:56:32 +0000
commitfe6d9ed343ea46fd67bf4d3d36a9f78431ec7263 (patch)
tree34068734edb28ed782239f68329a4c2195402cd9 /addons
parentd809b476819968837b61bdd78fbf101caac73adc (diff)
[FIX] calendar: getting recurrent_ids twice
The `_search` is override in `calendar.event` to return both ids and virtual ids of recurrent events. Calling `.get_recurrent_ids` after the search is wrong. The entire request has been copied from the original `_find_allowed_model_wise` function defined in `mail.message` to ensure his correctness. The purpose here is to ensure every virtual event id is mapped to the real event id so the original function doesn't throw KeyErrors for virtual ids. opw-1972563 closes odoo/odoo#33246 Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>
Diffstat (limited to 'addons')
-rw-r--r--addons/calendar/models/mail_message.py3
1 files changed, 1 insertions, 2 deletions
diff --git a/addons/calendar/models/mail_message.py b/addons/calendar/models/mail_message.py
index 3d5b6dcae00..5ea60b3e293 100644
--- a/addons/calendar/models/mail_message.py
+++ b/addons/calendar/models/mail_message.py
@@ -28,7 +28,6 @@ class Message(models.Model):
def _find_allowed_model_wise(self, doc_model, doc_dict):
if doc_model == 'calendar.event':
order = self._context.get('order', self.env[doc_model]._order)
- records = self.env[doc_model].search([('id', 'in', list(doc_dict))])
- for virtual_id in records.get_recurrent_ids([], order=order):
+ for virtual_id in self.env[doc_model].with_context(active_test=False).search([('id', 'in', list(doc_dict))], order=order).ids:
doc_dict.setdefault(virtual_id, doc_dict[get_real_ids(virtual_id)])
return super(Message, self)._find_allowed_model_wise(doc_model, doc_dict)