diff --git a/addons/website/i18n/website.pot b/addons/website/i18n/website.pot index 1627ec64650..322cdc82ca9 100644 --- a/addons/website/i18n/website.pot +++ b/addons/website/i18n/website.pot @@ -8678,6 +8678,12 @@ msgstr "" msgid "valuation, rank" msgstr "" +#. module: website +#: code:addons/website/models/website.py:162 +#, python-format +msgid "You must keep at least one website." +msgstr "" + #. module: website #: model:ir.model.fields,field_description:website.field_res_config_settings__website_id msgid "website" diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 864aeb19571..44e782e9ac5 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -16,6 +16,7 @@ from odoo import api, fields, models, tools from odoo.addons.http_routing.models.ir_http import slugify, _guess_mimetype, url_for from odoo.addons.website.models.ir_http import sitemap_qs2dom from odoo.addons.portal.controllers.portal import pager +from odoo.exceptions import UserError from odoo.http import request from odoo.modules.module import get_resource_path from odoo.osv.expression import FALSE_DOMAIN @@ -221,6 +222,9 @@ class Website(models.Model): vals['favicon'] = tools.image_process(vals['favicon'], size=(256, 256), crop='center', output_format='ICO') def unlink(self): + website = self.search([('id', 'not in', self.ids)], limit=1) + if not website: + raise UserError(_('You must keep at least one website.')) # Do not delete invoices, delete what's strictly necessary attachments_to_unlink = self.env['ir.attachment'].search([ ('website_id', 'in', self.ids),