summaryrefslogtreecommitdiff
path: root/addons/website/controllers/main.py
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/controllers/main.py
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/controllers/main.py')
-rw-r--r--addons/website/controllers/main.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index ccdd44e1c4d..1d0e0a85dd8 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -21,6 +21,8 @@ from odoo.exceptions import AccessError
from odoo.addons.website.models.website import slug
from odoo.addons.web.controllers.main import WebClient, Binary, Home
+from odoo.tools import pycompat
+
logger = logging.getLogger(__name__)
# Completely arbitrary limits
@@ -37,11 +39,11 @@ class QueryURL(object):
def __call__(self, path=None, path_args=None, **kw):
path = path or self.path
- for key, value in self.args.items():
+ for key, value in pycompat.items(self.args):
kw.setdefault(key, value)
path_args = set(path_args or []).union(self.path_args)
paths, fragments = [], []
- for key, value in kw.items():
+ for key, value in pycompat.items(kw):
if value and key in path_args:
if isinstance(value, browse_record):
paths.append((key, slug(value)))
@@ -193,7 +195,7 @@ class Website(Home):
})
else:
# TODO: in master/saas-15, move current_website_id in template directly
- pages_with_website = map(lambda p: "%d-%d" % (current_website.id, p), range(1, pages + 1))
+ pages_with_website = ["%d-%d" % (current_website.id, p) for p in range(1, pages + 1)]
# Sitemaps must be split in several smaller files with a sitemap index
content = View.render_template('website.sitemap_index_xml', {