diff options
| author | xmo-odoo <xmo@odoo.com> | 2017-05-10 09:39:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-10 09:39:55 +0200 |
| commit | fffaf735f58f1ac57781c095eb552de6d1fcdc47 (patch) | |
| tree | 88ab0ab65430d871862a836524e0ecc890d1674d /addons/website/controllers/main.py | |
| parent | 10eee18a047d35305dc46282e610e88936d81ffc (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.py | 8 |
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', { |
