From b592896f4ba0729ae4f75990db4b68a32af24e82 Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Thu, 12 Jul 2012 11:47:40 +0530 Subject: [PATCH 1/8] [ADD]: Add state field for ir.translation bzr revid: aja@tinyerp.com-20120712061740-4mo3l0d70wxthki2 --- openerp/addons/base/ir/ir.xml | 3 +++ openerp/addons/base/ir/ir_translation.py | 26 +++++++++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index 4de12d8bfeb..ff9ba292fe2 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -1258,6 +1258,9 @@ form
+
+ +
diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 61e40e807d4..7693f95a7c8 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -77,14 +77,16 @@ class ir_translation_import_cursor(object): def push(self, ddict): """Feed a translation, as a dictionary, into the cursor """ - + state= "translated" + if not ddict['value']: + state = 'translate' self._cr.execute("INSERT INTO " + self._table_name \ + """(name, lang, res_id, src, type, - imd_model, imd_module, imd_name, value) - VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s)""", + imd_model, imd_module, imd_name, value,state) + VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", (ddict['name'], ddict['lang'], ddict.get('res_id'), ddict['src'], ddict['type'], ddict.get('imd_model'), ddict.get('imd_module'), ddict.get('imd_name'), - ddict['value'])) + ddict['value'],state)) def finish(self): """ Transfer the data from the temp table to ir.translation @@ -125,15 +127,16 @@ class ir_translation_import_cursor(object): # Step 2: update existing (matching) translations if self._overwrite: cr.execute("""UPDATE ONLY %s AS irt - SET value = ti.value + SET value = ti.value, + state = 'translated' FROM %s AS ti WHERE %s AND ti.value IS NOT NULL AND ti.value != '' """ % (self._parent_table, self._table_name, find_expr)) # Step 3: insert new translations - cr.execute("""INSERT INTO %s(name, lang, res_id, src, type, value) - SELECT name, lang, res_id, src, type, value + cr.execute("""INSERT INTO %s(name, lang, res_id, src, type, value,state) + SELECT name, lang, res_id, src, type, value,state FROM %s AS ti WHERE NOT EXISTS(SELECT 1 FROM ONLY %s AS irt WHERE %s); """ % (self._parent_table, self._table_name, self._parent_table, find_expr)) @@ -167,6 +170,11 @@ class ir_translation(osv.osv): 'type': fields.selection(TRANSLATION_TYPE, string='Type', size=16, select=True), 'src': fields.text('Source'), 'value': fields.text('Translation Value'), + 'state':fields.selection([('translate','To Translate'),('inprogress','Translation in Progress'),('translated','Translated')]) + } + + _defaults = { + 'state':'translated', } _sql_constraints = [ ('lang_fkey_res_lang', 'FOREIGN KEY(lang) REFERENCES res_lang(code)', @@ -297,6 +305,10 @@ class ir_translation(osv.osv): return ids def write(self, cursor, user, ids, vals, context=None): + if vals.get('src'): + result= vals.update({'state':'translate'}) + if vals.get('value'): + result= vals.update({'state':'translated'}) if not context: context = {} if isinstance(ids, (int, long)): From 862c582ba8b1f8d457811ba8d8f87194e832b112 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Fri, 24 Aug 2012 19:10:12 +0530 Subject: [PATCH 2/8] [FIX] Added missing udpate btn bzr revid: jam@tinyerp.com-20120824134012-gu4wefjbdeuw1mw8 --- .../addons/base/module/wizard/base_update_translations_view.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openerp/addons/base/module/wizard/base_update_translations_view.xml b/openerp/addons/base/module/wizard/base_update_translations_view.xml index 1fe52511ebb..392994178f7 100644 --- a/openerp/addons/base/module/wizard/base_update_translations_view.xml +++ b/openerp/addons/base/module/wizard/base_update_translations_view.xml @@ -10,6 +10,8 @@
+
From b6617ff6ba4822ae12874f5ae797a6683f4a4475 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Tue, 28 Aug 2012 15:03:05 +0530 Subject: [PATCH 3/8] [FIX] Fixed the usablity of cancel btn bzr revid: jam@tinyerp.com-20120828093305-w2olgo9wkyu7903p --- .../addons/base/module/wizard/base_update_translations_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/module/wizard/base_update_translations_view.xml b/openerp/addons/base/module/wizard/base_update_translations_view.xml index 392994178f7..4a20ef30bee 100644 --- a/openerp/addons/base/module/wizard/base_update_translations_view.xml +++ b/openerp/addons/base/module/wizard/base_update_translations_view.xml @@ -12,7 +12,7 @@
From d27721f480340446bc5405523b35febabf1770da Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Tue, 28 Aug 2012 15:45:59 +0530 Subject: [PATCH 4/8] [REN] Renamed the state field key value bzr revid: jam@tinyerp.com-20120828101559-l2zbivjzlmu7baq2 --- openerp/addons/base/ir/ir_translation.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 7693f95a7c8..f0a0ccc91e8 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -77,9 +77,9 @@ class ir_translation_import_cursor(object): def push(self, ddict): """Feed a translation, as a dictionary, into the cursor """ - state= "translated" - if not ddict['value']: - state = 'translate' + state = ddict['value'] and "to_translate" or "translated" + if not : + state = self._cr.execute("INSERT INTO " + self._table_name \ + """(name, lang, res_id, src, type, imd_model, imd_module, imd_name, value,state) @@ -170,7 +170,7 @@ class ir_translation(osv.osv): 'type': fields.selection(TRANSLATION_TYPE, string='Type', size=16, select=True), 'src': fields.text('Source'), 'value': fields.text('Translation Value'), - 'state':fields.selection([('translate','To Translate'),('inprogress','Translation in Progress'),('translated','Translated')]) + 'state':fields.selection([('to_translate','To Translate'),('inprogress','Translation in Progress'),('translated','Translated')]) } _defaults = { @@ -305,14 +305,14 @@ class ir_translation(osv.osv): return ids def write(self, cursor, user, ids, vals, context=None): - if vals.get('src'): - result= vals.update({'state':'translate'}) - if vals.get('value'): - result= vals.update({'state':'translated'}) if not context: context = {} if isinstance(ids, (int, long)): ids = [ids] + if vals.get('src'): + result = vals.update({'state':'to_translate'}) + if vals.get('value'): + result = vals.update({'state':'translated'}) result = super(ir_translation, self).write(cursor, user, ids, vals, context=context) for trans_obj in self.read(cursor, user, ids, ['name','type','res_id','src','lang'], context=context): self._get_source.clear_cache(self, user, trans_obj['name'], trans_obj['type'], trans_obj['lang'], trans_obj['src']) From a4dae41a49327ea40773dbe90f823c602466ffde Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Tue, 28 Aug 2012 15:47:23 +0530 Subject: [PATCH 5/8] [FIX] Removed the unused wrong code bzr revid: jam@tinyerp.com-20120828101723-d6qdm3bqpx3gcqbe --- openerp/addons/base/ir/ir_translation.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index f0a0ccc91e8..40facb34699 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -78,8 +78,6 @@ class ir_translation_import_cursor(object): """Feed a translation, as a dictionary, into the cursor """ state = ddict['value'] and "to_translate" or "translated" - if not : - state = self._cr.execute("INSERT INTO " + self._table_name \ + """(name, lang, res_id, src, type, imd_model, imd_module, imd_name, value,state) From 9464f474a4d99ff0ddcf9d0bc4a36016f0fb0b33 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Tue, 28 Aug 2012 16:08:59 +0530 Subject: [PATCH 6/8] [FIX] State Condition bzr revid: jam@tinyerp.com-20120828103859-jp22lgwzlucc55gl --- openerp/addons/base/ir/ir_translation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 40facb34699..72c0c0b9208 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -77,7 +77,7 @@ class ir_translation_import_cursor(object): def push(self, ddict): """Feed a translation, as a dictionary, into the cursor """ - state = ddict['value'] and "to_translate" or "translated" + state = ddict['value'] and "translated" or "to_translate" self._cr.execute("INSERT INTO " + self._table_name \ + """(name, lang, res_id, src, type, imd_model, imd_module, imd_name, value,state) From 46604fccb57dce8fa1ee2e15bc9ec97e0b5a589d Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Thu, 30 Aug 2012 17:20:55 +0530 Subject: [PATCH 7/8] [FIX] Impoved treanlstion state field conditions bzr revid: jam@tinyerp.com-20120830115055-tf396grzw3f6olfz --- openerp/addons/base/ir/ir_translation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 72c0c0b9208..de2608a081a 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -77,7 +77,7 @@ class ir_translation_import_cursor(object): def push(self, ddict): """Feed a translation, as a dictionary, into the cursor """ - state = ddict['value'] and "translated" or "to_translate" + state = "translated" if (ddict['value'] and ddict['value'] != "") else "to_translate" self._cr.execute("INSERT INTO " + self._table_name \ + """(name, lang, res_id, src, type, imd_model, imd_module, imd_name, value,state) @@ -172,7 +172,7 @@ class ir_translation(osv.osv): } _defaults = { - 'state':'translated', + 'state':'to_translate', } _sql_constraints = [ ('lang_fkey_res_lang', 'FOREIGN KEY(lang) REFERENCES res_lang(code)', From 46f287b2d19b1811a359a74057a3dbe44c6ba449 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 30 Aug 2012 16:50:00 +0200 Subject: [PATCH 8/8] [FIX] base, ir_translation: a write of '' as translated value should reset the translation in 'to_translate' state bzr revid: qdp-launchpad@openerp.com-20120830145000-61uh1tpux5dyp7na --- openerp/addons/base/ir/ir_translation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index de2608a081a..23cedbdc574 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -307,7 +307,7 @@ class ir_translation(osv.osv): context = {} if isinstance(ids, (int, long)): ids = [ids] - if vals.get('src'): + if vals.get('src') or ('value' in vals and not(vals.get('value'))): result = vals.update({'state':'to_translate'}) if vals.get('value'): result = vals.update({'state':'translated'})