summaryrefslogtreecommitdiff
path: root/addons/pad/models
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/pad/models
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/pad/models')
-rw-r--r--addons/pad/models/pad.py8
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')