diff options
| author | David Monjoie <dmo@odoo.com> | 2016-09-28 13:12:55 +0200 |
|---|---|---|
| committer | David Monjoie <dmo@odoo.com> | 2016-09-28 13:44:16 +0200 |
| commit | f82aeb05d0c8c567e9929a36b18dff74f9fbdcc3 (patch) | |
| tree | 5b56785023e8c268a587210815d44303df22680b /addons/event/models/event_mail.py | |
| parent | 9ba569874c494fa2065d1fa2ec79a79e4cf09d00 (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.py | 3 |
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}) |
