summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2016-01-29 17:39:14 +0100
committerRaphael Collet <rco@openerp.com>2016-02-01 18:01:02 +0100
commita688bcdbbd6d1df980feca17edb94d06bcb0a4a3 (patch)
treedc37419f818b43673b1273b93a5938dd2beac48b
parent08b286111c0dc0227b1692d2258be3b7d7f2d733 (diff)
[FIX] fields: make `copy_cache` not invalidate the cache!
-rw-r--r--openerp/fields.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/openerp/fields.py b/openerp/fields.py
index ba3bc259282..fc421fc1cc5 100644
--- a/openerp/fields.py
+++ b/openerp/fields.py
@@ -64,9 +64,11 @@ def copy_cache(records, env):
for record, target in zip(records, records.with_env(env)):
if not target._cache:
for name, value in record._cache.iteritems():
- target[name] = value
if isinstance(value, BaseModel):
+ target._cache[name] = value.with_env(env)
copy_cache(value, env)
+ else:
+ target._cache[name] = value
def resolve_all_mro(cls, name, reverse=False):