summaryrefslogtreecommitdiff
path: root/addons/website_event
diff options
context:
space:
mode:
authorxmo-odoo <xmo@odoo.com>2017-05-10 09:39:55 +0200
committerGitHub <noreply@github.com>2017-05-10 09:39:55 +0200
commitfffaf735f58f1ac57781c095eb552de6d1fcdc47 (patch)
tree88ab0ab65430d871862a836524e0ecc890d1674d /addons/website_event
parent10eee18a047d35305dc46282e610e88936d81ffc (diff)
[FIX] P3: list -> iterable builtins (#16811)
In Python 3: * various builtins and dict methods were changed to return view/iterable objects rather than lists * and the separate Python 2 view/iterable builtins and methods were removed altogether This is problematic when using these items as list (which the happens repeatedly in Odoo), but more viciously when iterating *multiple times* over them (which also happens, which I've messed up multiple times while writing this, and which is a pain to debug even when you've just created the issue). Convert all code using these to semantics-matching cross-version helper functions to get the LCD behaviour between P2 and P3, and forbid the builtins via lint. issue #8530
Diffstat (limited to 'addons/website_event')
-rw-r--r--addons/website_event/controllers/main.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index 9a9ef605118..00e51627c0c 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -9,6 +9,7 @@ from dateutil.relativedelta import relativedelta
from odoo import fields, http, _
from odoo.addons.website.models.website import slug
from odoo.http import request
+from odoo.tools import pycompat
class WebsiteEventController(http.Controller):
@@ -79,7 +80,7 @@ class WebsiteEventController(http.Controller):
def dom_without(without):
domain = [('state', "in", ['draft', 'confirm', 'done'])]
- for key, search in domain_search.items():
+ for key, search in pycompat.items(domain_search):
if key != without:
domain += search
return domain
@@ -232,16 +233,16 @@ class WebsiteEventController(http.Controller):
''' Process data posted from the attendee details form. '''
registrations = {}
global_values = {}
- for key, value in details.iteritems():
+ for key, value in pycompat.items(details):
counter, field_name = key.split('-', 1)
if counter == '0':
global_values[field_name] = value
else:
registrations.setdefault(counter, dict())[field_name] = value
- for key, value in global_values.iteritems():
- for registration in registrations.values():
+ for key, value in pycompat.items(global_values):
+ for registration in pycompat.values(registrations):
registration[key] = value
- return registrations.values()
+ return list(pycompat.values(registrations))
@http.route(['/event/<model("event.event"):event>/registration/confirm'], type='http', auth="public", methods=['POST'], website=True)
def registration_confirm(self, event, **post):