diff --git a/addons/delivery/i18n/delivery.pot b/addons/delivery/i18n/delivery.pot index 777f0b4668e..b836360736b 100644 --- a/addons/delivery/i18n/delivery.pot +++ b/addons/delivery/i18n/delivery.pot @@ -807,6 +807,14 @@ msgid "" "\n" msgstr "" +#. module: delivery +#: code:addons/delivery/models/product_category.py:0 +#, python-format +msgid "" +"You cannot delete the deliveries product category as it is used on the " +"delivery carriers products." +msgstr "" + #. module: delivery #: model:ir.actions.act_window,name:delivery.action_delivery_zip_prefix_list msgid "Zip Prefix" diff --git a/addons/delivery/models/__init__.py b/addons/delivery/models/__init__.py index dea7dd944c0..10e86329fef 100644 --- a/addons/delivery/models/__init__.py +++ b/addons/delivery/models/__init__.py @@ -3,6 +3,7 @@ from . import delivery_carrier from . import delivery_price_rule from . import delivery_zip_prefix +from . import product_category from . import res_partner from . import sale_order from . import sale_order_line diff --git a/addons/delivery/models/product_category.py b/addons/delivery/models/product_category.py new file mode 100644 index 00000000000..c45f8593b6f --- /dev/null +++ b/addons/delivery/models/product_category.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models, _ +from odoo.exceptions import UserError + + +class ProductCategory(models.Model): + _inherit = "product.category" + + @api.ondelete(at_uninstall=False) + def _unlink_except_delivery_category(self): + delivery_category = self.env.ref('delivery.product_category_deliveries', raise_if_not_found=False) + if delivery_category and delivery_category in self: + raise UserError(_("You cannot delete the deliveries product category as it is used on the delivery carriers products."))