Skip to content
Snippets Groups Projects
Commit 1388b7f0 authored by Nicolas Lempereur's avatar Nicolas Lempereur
Browse files

[FIX] base: remove copied views before uninstall

In dff64b6f7ca some copied views with no link to a module would be
removed after module uninstall.

But this has some side effects when the website module is being removed.

For example:

- website_theme_install, website are installed
- website is uninstalled (which will uninstall website_theme_install)
- website.theme_customize view can't be removed because it is used by
  copied view website_theme_install.customize_modal
- after uninstall _remove_copied_views will remove the view
  website.theme_customize but when trying to remove associated
  website.page will throw an error because website_page table does not
  exist

This issue does not happen if we uninstall first website_theme_install
then website (since like this the reference is not an issue).

The issue also happen with overriding views in theme_bootstrap and
possibly elsewhere.

With this changeset, copied views are removed before uninstalling module
data.

opw-1924714
closes #30191
parent 9ee09945
No related branches found
No related tags found
No related merge requests found
......@@ -457,8 +457,8 @@ class Module(models.Model):
tables, columns, constraints, etc.
"""
modules_to_remove = self.mapped('name')
self.env['ir.model.data']._module_data_uninstall(modules_to_remove)
self._remove_copied_views()
self.env['ir.model.data']._module_data_uninstall(modules_to_remove)
# we deactivate prefetching to not try to read a column that has been deleted
self.with_context(prefetch_fields=False).write({'state': 'uninstalled', 'latest_version': False})
return True
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment