From c242526b7b537009805d40e7c1770e114d164ffc Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Wed, 26 Apr 2017 13:35:00 +0200 Subject: [PATCH] [FIX] delivery: Delivery methods not translated In function name_get on model "delivery.carrier", the field name is taken from "product.template" and the translations were just available on model "product.product". The translations for the "product.template" records were not available in the .pot file because there was no external identifiers created for the "product.template". Now when creating the external identifier of a record, all the external identifiers of the inherits models of this record are also created. In this way, all the translations will be created. opw:728682 --- addons/delivery/i18n/delivery.pot | 3 +++ odoo/addons/base/ir/ir_model.py | 26 ++++++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/addons/delivery/i18n/delivery.pot b/addons/delivery/i18n/delivery.pot index 2c976bfac0b..6d077886d6e 100644 --- a/addons/delivery/i18n/delivery.pot +++ b/addons/delivery/i18n/delivery.pot @@ -588,6 +588,7 @@ msgstr "" #. module: delivery #: model:delivery.carrier,name:delivery.free_delivery_carrier #: model:product.product,name:delivery.free_delivery_carrier_product_product +#: model:product.template,name:delivery.free_delivery_carrier_product_template msgid "Free delivery charges" msgstr "" @@ -936,6 +937,7 @@ msgstr "" #. module: delivery #: model:delivery.carrier,name:delivery.normal_delivery_carrier #: model:product.product,name:delivery.normal_delivery_carrier_product_product +#: model:product.template,name:delivery.normal_delivery_carrier_product_template msgid "Normal Delivery Charges" msgstr "" @@ -1425,6 +1427,7 @@ msgstr "" #. module: delivery #: model:delivery.carrier,name:delivery.delivery_carrier #: model:product.product,name:delivery.delivery_carrier_product_product +#: model:product.template,name:delivery.delivery_carrier_product_template msgid "The Poste" msgstr "" diff --git a/odoo/addons/base/ir/ir_model.py b/odoo/addons/base/ir/ir_model.py index 83e8ee5573e..7c50b3fa6e3 100644 --- a/odoo/addons/base/ir/ir_model.py +++ b/odoo/addons/base/ir/ir_model.py @@ -1227,16 +1227,22 @@ class IrModelData(models.Model): record = record.create(values) if xml_id: - for parent_model, parent_field in record._inherits.iteritems(): - if parent_model in existing_parents: - continue - self.sudo().create({ - 'name': xml_id + '_' + parent_model.replace('.', '_'), - 'model': parent_model, - 'module': module, - 'res_id': record[parent_field].id, - 'noupdate': noupdate, - }) + #To add an external identifiers to all inherits model + inherit_models = [record] + while inherit_models: + current_model = inherit_models.pop() + for parent_model_name, parent_field in current_model._inherits.iteritems(): + inherit_models.append(self.env[parent_model_name]) + if parent_model_name in existing_parents: + continue + self.sudo().create({ + 'name': xml_id + '_' + parent_model_name.replace('.', '_'), + 'model': parent_model_name, + 'module': module, + 'res_id': record[parent_field].id, + 'noupdate': noupdate, + }) + existing_parents.add(parent_model_name) self.sudo().create({ 'name': xml_id, 'model': model,