From 57236d5fe2de0a4448113259a94beedbc6763fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 17 Sep 2008 12:54:17 +0200 Subject: [PATCH] Improve translation field in import xml for issue372 --- trytond/tools/convert.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/trytond/tools/convert.py b/trytond/tools/convert.py index ca99e6b931..7872f8e686 100644 --- a/trytond/tools/convert.py +++ b/trytond/tools/convert.py @@ -625,7 +625,7 @@ class TrytondXmlHandler(sax.handler.ContentHandler): 'value, module, fuzzy) ' \ 'VALUES (%s, %s, %s, %s, %s, %s, %s, false)', (object_ref._name + ',' + field_name, - 'en_US', 'model', values[field_name], + 'en_US', 'model', to_update[field_name], db_id, '', module)) # re-read it: this ensure that we store the real value @@ -665,13 +665,27 @@ class TrytondXmlHandler(sax.handler.ContentHandler): #Add a translation record for field translatable for field_name, field in object_ref._columns.iteritems(): if field.translate and values.get(field_name): - cursor.execute('INSERT INTO ir_translation ' \ - '(name, lang, type, src, res_id, ' \ - 'value, module, fuzzy) ' \ - 'VALUES (%s, %s, %s, %s, %s, %s, %s, false)', + cursor.execute('SELECT id FROM ir_translation ' \ + 'WHERE name = %s' \ + 'AND lang = %s ' \ + 'AND type = %s ' \ + 'AND res_id = %s', (object_ref._name + ',' + field_name, - 'en_US', 'model', values[field_name], - db_id, '', module)) + 'en_US', 'model', db_id)) + if cursor.rowcount: + trans_id = cursor.fetchone()[0] + cursor.execute('UPDATE ir_translation ' \ + 'SET src = %s, module = %s ' \ + 'WHERE id = %s', + (values[field_name], module, trans_id)) + else: + cursor.execute('INSERT INTO ir_translation ' \ + '(name, lang, type, src, res_id, ' \ + 'value, module, fuzzy) ' \ + 'VALUES (%s, %s, %s, %s, %s, %s, %s, false)', + (object_ref._name + ',' + field_name, + 'en_US', 'model', values[field_name], + db_id, '', module)) # re-read it: this ensure that we store the real value # in the model_data table: