summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2015-05-05 15:03:06 +0200
committerRaphael Collet <rco@openerp.com>2015-05-05 17:33:16 +0200
commit0c665edb66098d95a407a0d2be9351bbea81b2db (patch)
tree4ed9585ecfdd7cbeb806c80a1411815fa268b7e0
parent071152216fe44039f75e821b0cbf31344b66d174 (diff)
[FIX] models: make sure an environment is available when we access field.digits
Accessing `field.digits` can crash if no environment is available at that point. This happens in function `get_pg_type()`, which is called from method `_auto_init()`. An environment is simply created in the method's scope to be available for `field.digits`.
-rw-r--r--openerp/models.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/openerp/models.py b/openerp/models.py
index fda46834332..6beffe5072f 100644
--- a/openerp/models.py
+++ b/openerp/models.py
@@ -2431,6 +2431,11 @@ class BaseModel(object):
# has not been added in database yet!
context = dict(context or {}, prefetch_fields=False)
+ # Make sure an environment is available for get_pg_type(). This is
+ # because we access column.digits, which retrieves a cursor from
+ # existing environments.
+ env = api.Environment(cr, SUPERUSER_ID, context)
+
store_compute = False
stored_fields = [] # new-style stored fields with compute
todo_end = []