summaryrefslogtreecommitdiff
path: root/addons/event/models/event_mail.py
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2016-09-28 13:12:55 +0200
committerDavid Monjoie <dmo@odoo.com>2016-09-28 13:44:16 +0200
commitf82aeb05d0c8c567e9929a36b18dff74f9fbdcc3 (patch)
tree5b56785023e8c268a587210815d44303df22680b /addons/event/models/event_mail.py
parent9ba569874c494fa2065d1fa2ec79a79e4cf09d00 (diff)
[FIX] event: fix registration confirmation delay
The previous line was O(n^2). With n=1200 like we just have now, things didn't look good for this loop and confirming an attendee registration to such event took approx. 13 seconds. Since the list comprehension is in no mean linked to the value of "item" in the filter, I simply moved it out so it is only computed once.
Diffstat (limited to 'addons/event/models/event_mail.py')
-rw-r--r--addons/event/models/event_mail.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/addons/event/models/event_mail.py b/addons/event/models/event_mail.py
index d6db023bcd7..84689fe7e2e 100644
--- a/addons/event/models/event_mail.py
+++ b/addons/event/models/event_mail.py
@@ -71,7 +71,8 @@ class EventMailScheduler(models.Model):
if self.interval_type == 'after_sub':
# update registration lines
lines = []
- for registration in filter(lambda item: item not in [mail_reg.registration_id for mail_reg in self.mail_registration_ids], self.event_id.registration_ids):
+ reg_ids = [mail_reg.registration_id for mail_reg in self.mail_registration_ids]
+ for registration in filter(lambda item: item not in reg_ids, self.event_id.registration_ids):
lines.append((0, 0, {'registration_id': registration.id}))
if lines:
self.write({'mail_registration_ids': lines})