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,