From dfafebf681d5b72d25d2f8ed6b4faf5599034c9b Mon Sep 17 00:00:00 2001 From: "YSA,VRA" <> Date: Wed, 1 Jul 2009 13:27:25 +0530 Subject: [PATCH] [FIX] ir_translation : corrected entry insertion when adding translation lp bug: https://launchpad.net/bugs/385544 fixed bzr revid: jvo@tinyerp.com-20090701075725-tysembj3bu81eari --- bin/addons/base/ir/ir_translation.py | 3 ++- bin/osv/orm.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/addons/base/ir/ir_translation.py b/bin/addons/base/ir/ir_translation.py index 286971357e1..68e9138479e 100644 --- a/bin/addons/base/ir/ir_translation.py +++ b/bin/addons/base/ir/ir_translation.py @@ -94,7 +94,7 @@ class ir_translation(osv.osv): translations[res_id] = value return translations - def _set_ids(self, cr, uid, name, tt, lang, ids, value): + def _set_ids(self, cr, uid, name, tt, lang, ids, value, src=None): # clear the caches tr = self._get_ids(cr, uid, name, tt, lang, ids) for res_id in tr: @@ -117,6 +117,7 @@ class ir_translation(osv.osv): 'name':name, 'res_id':id, 'value':value, + 'src':src, }) return len(ids) diff --git a/bin/osv/orm.py b/bin/osv/orm.py index 1cd3acc08c9..e230c65ebbd 100644 --- a/bin/osv/orm.py +++ b/bin/osv/orm.py @@ -2291,11 +2291,12 @@ class orm(orm_template): else: cr.execute('update "'+self._table+'" set '+string.join(upd0, ',')+' ' \ 'where id in ('+ids_str+')', upd1) - + if totranslate: for f in direct: if self._columns[f].translate: - self.pool.get('ir.translation')._set_ids(cr, user, self._name+','+f, 'model', context['lang'], ids, vals[f]) + src_trans = self.pool.get(self._name).read(cr,user,ids,[f]) + self.pool.get('ir.translation')._set_ids(cr, user, self._name+','+f, 'model', context['lang'], ids, vals[f], src_trans[0][f]) # call the 'set' method of fields which are not classic_write upd_todo.sort(lambda x, y: self._columns[x].priority-self._columns[y].priority)