summaryrefslogtreecommitdiff
path: root/addons/website_form/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/website_form/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/website_form/models')
-rw-r--r--addons/website_form/models/models.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/addons/website_form/models/models.py b/addons/website_form/models/models.py
index 3c118176ec6..75a2ce33fb2 100644
--- a/addons/website_form/models/models.py
+++ b/addons/website_form/models/models.py
@@ -5,6 +5,7 @@ import itertools
from odoo import models, fields, api
from odoo.http import request
+from odoo.tools import pycompat
class website_form_config(models.Model):
@@ -47,7 +48,7 @@ class website_form_model(models.Model):
])
}
return {
- k: v for k, v in self.get_authorized_fields(self.model).iteritems()
+ k: v for k, v in pycompat.items(self.get_authorized_fields(self.model))
if k not in excluded
}
@@ -57,17 +58,17 @@ class website_form_model(models.Model):
model = self.env[model_name]
fields_get = model.fields_get()
- for key, val in model._inherits.iteritems():
+ for key, val in pycompat.items(model._inherits):
fields_get.pop(val, None)
# Unrequire fields with default values
- default_values = model.default_get(fields_get.keys())
+ default_values = model.default_get(list(fields_get))
for field in [f for f in fields_get if f in default_values]:
fields_get[field]['required'] = False
# Remove readonly and magic fields
MAGIC_FIELDS = models.MAGIC_COLUMNS + [model.CONCURRENCY_CHECK_FIELD]
- for field in fields_get.keys():
+ for field in list(fields_get):
if fields_get[field]['readonly'] or field in MAGIC_FIELDS:
del fields_get[field]