From df557637d1010cad27029405925333e121ea58a2 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Thu, 30 Aug 2012 18:15:53 +0200 Subject: [PATCH] [ADD] ir.translation#translate() bzr revid: fme@openerp.com-20120830161553-hmf4fbsnqd2dhq7z --- openerp/addons/base/ir/ir_translation.py | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 61e40e807d4..78dda4ab5b5 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -318,6 +318,31 @@ class ir_translation(osv.osv): result = super(ir_translation, self).unlink(cursor, user, ids, context=context) return result + def translate(self, cr, uid, model, id, field=None, context=None): + trans_model = self.pool.get(model) + domain = ['&', ('res_id', '=', id), ('name', 'ilike', model + ',')] + for f, info in trans_model._all_columns.items(): + if info.parent_model and info.column.translate: + domain_id = trans_model.read(cr, uid, [id], [info.parent_column], context=context)[0][info.parent_column][0] + domain.insert(0, '|') + domain.extend(['&', ('res_id', '=', domain_id), ('name', '=', "%s,%s" % (info.parent_model, f))]) + + action = { + 'name': 'Translate', + 'view_type': 'list', + 'view_mode': 'list', + 'res_model': 'ir.translation', + 'type': 'ir.actions.act_window', + 'domain': domain, + 'views': [(False, 'list'), (False, 'form')], + } + if field: + info = trans_model._all_columns[field] + action['context'] = { + 'search_default_name': "%s,%s" % (info.parent_model or model, field) + } + return action + def _get_import_cursor(self, cr, uid, context=None): """ Return a cursor-like object for fast inserting translations """