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/pad/models | |
| 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/pad/models')
| -rw-r--r-- | addons/pad/models/pad.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/addons/pad/models/pad.py b/addons/pad/models/pad.py index dfa1dbf859b..1c8f08e79bd 100644 --- a/addons/pad/models/pad.py +++ b/addons/pad/models/pad.py @@ -9,7 +9,7 @@ import urllib2 from odoo import api, models, _ from odoo.exceptions import UserError -from odoo.tools import html2plaintext +from odoo.tools import html2plaintext, pycompat from ..py_etherpad import EtherpadLiteClient @@ -102,7 +102,7 @@ class PadCommon(models.AbstractModel): # In case the pad is created programmatically, the content is not filled in yet since it is # normally initialized by the JS layer - for k, field in self._fields.iteritems(): + for k, field in pycompat.items(self._fields): if hasattr(field, 'pad_content_field') and k not in vals: ctx = { 'model': self._name, @@ -115,7 +115,7 @@ class PadCommon(models.AbstractModel): # Set the pad content in vals def _set_pad_value(self, vals): - for k, v in vals.items(): + for k, v in list(pycompat.items(vals)): field = self._fields[k] if hasattr(field, 'pad_content_field'): vals[field.pad_content_field] = self.pad_get_content(v) @@ -125,7 +125,7 @@ class PadCommon(models.AbstractModel): self.ensure_one() if not default: default = {} - for k, field in self._fields.iteritems(): + for k, field in pycompat.items(self._fields): if hasattr(field, 'pad_content_field'): pad = self.pad_generate_url() default[k] = pad.get('url') |
