Force reload browse record when changing language during report process

This commit is contained in:
Cédric Krier
2008-02-01 18:51:40 +01:00
parent 06444da2d5
commit b4eb16e9d6
+17
View File
@@ -224,6 +224,7 @@ class Report(object):
localcontext['objects'] = objects
localcontext['user'] = self.pool.get('res.user').\
browse(cursor, user, user)
localcontext['_language_cache'] = {}
localcontext.update(context)
content_io = StringIO.StringIO(content)
content_z = zipfile.ZipFile(content_io, mode='r')
@@ -343,6 +344,22 @@ class Report(object):
def set_lang(self, lang, localcontext):
localcontext['language'] = lang
_language_cache = localcontext['_language_cache']
for obj in localcontext['objects']:
for table in obj._cache:
for obj_id in obj._cache[table]:
_language_cache.setdefault(
obj._context['language'], {}).setdefault(
table, {}).update(
obj._cache[table][obj_id])
if lang in _language_cache \
and table in _language_cache[lang] \
and obj_id in _language_cache[lang][table]:
obj._cache[table][obj_id] = \
_language_cache[lang][table][obj_id]
else:
obj._cache[table][obj_id] = {'id': obj_id}
obj._context['language'] = lang
return None
def format_lang(self, value, digits=2, date=False, localcontext=None):