Manage extra model from model data for ir.action.*

ir.action.* create ir.action record on the fly which contains translatable
field. So they must inherit the xml id to be seen as module translation.

issue3123
review768002
This commit is contained in:
Cédric Krier committed 2013-04-08 23:48:34 +02:00
1 parent 36d681263d
commit e77ecd948f
1 file changed
+17
+17
View File
@@ -509,6 +509,17 @@ class Translation(ModelSQL, ModelView):
vals['src_md5'] = cls.get_src_md5(vals.get('src'))
return super(Translation, cls).write(translations, vals)
@classmethod
def extra_model_data(cls, model_data):
"Yield extra model linked to the model data"
if model_data.model in (
'ir.action.report',
'ir.action.act_window',
'ir.action.wizard',
'ir.action.url',
):
yield 'ir.action'
@classmethod
def translation_import(cls, lang, module, po_path):
pool = Pool()
@@ -520,6 +531,9 @@ class Translation(ModelSQL, ModelView):
for model_data in models_data:
fs_id2model_data.setdefault(model_data.model, {})
fs_id2model_data[model_data.model][model_data.fs_id] = model_data
for extra_model in cls.extra_model_data(model_data):
fs_id2model_data.setdefault(extra_model, {})
fs_id2model_data[extra_model][model_data.fs_id] = model_data
translations = set()
to_create = []
@@ -629,6 +643,9 @@ class Translation(ModelSQL, ModelView):
for model_data in models_data:
db_id2fs_id.setdefault(model_data.model, {})
db_id2fs_id[model_data.model][model_data.db_id] = model_data.fs_id
for extra_model in cls.extra_model_data(model_data):
db_id2fs_id.setdefault(extra_model, {})
db_id2fs_id[extra_model][model_data.db_id] = model_data.fs_id
pofile = TrytonPOFile(wrapwidth=78)
pofile.metadata = {