diff options
| author | Julien Castiaux <juc@odoo.com> | 2019-05-08 09:56:32 +0000 |
|---|---|---|
| committer | Julien Castiaux <juc@odoo.com> | 2019-05-08 09:56:32 +0000 |
| commit | fe6d9ed343ea46fd67bf4d3d36a9f78431ec7263 (patch) | |
| tree | 34068734edb28ed782239f68329a4c2195402cd9 /addons | |
| parent | d809b476819968837b61bdd78fbf101caac73adc (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.py | 3 |
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) |
