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:
1 parent
36d681263d
commit
e77ecd948f
1 file changed
+17
@@ -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 = {
|
||||
|
||||
Reference in new issue
Block a user