If a module has a view that has been copied (copy on write, web editor, customize show, manual copy, ...), currently the copied view will not be deleted if the module of the original view is removed. If the copy is not used anymore, it is not a problem (but still polluting the database), but if the copy is still used (ex. it is an inherit of a view still in use), then it will crash if that copy references other data (views, fields, ...) that were in the module that is now removed. Eg. The view `website_sale_comparison.product_add_to_compare` is inheriting `website_sale.product` and calls `website_sale_comparison.add_to_compare`. If the view `website_sale_comparison.product_add_to_compare` is copied (when using the web editor on the product page -> copy on write is making a copy of the `product` view and all its tree), then the product page on website will crash when the module `website_sale_comparison` is removed because `product_add_to_compare` will call the deleted view `add_to_compare`. The solution is to also remove copied views when removing a module. Instead of just using the xml id, we should look for the `key` starting with the module name currently removed, because copied views don't have an external id. task-1920005 PR: #29753
5 lines
143 B
Python
5 lines
143 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from . import test_website_sale_comparison
|