Skip to content
Snippets Groups Projects
Commit 59eee6ba authored by Damien Bouvy's avatar Damien Bouvy
Browse files

[IMP] base_import_module: clean up after itself

Uninstalling an imported module leaves behind an ir.module.module entry
which is entirely useless: it cannot be reinstalled without re-uploading
the module.

A quick solution is provided here by simply cleaning up after the
uninstallation and deleting the ir.module.module records of imported
modules that just got removed.

Another possibility could be to store the uploaded module for good in
an attachment and re-load it from there upon re-installation, but that
would lead to some conflict with Studio, as uninstalling the
studio_customization module usually means you want to get rid of it for
good.
parent 220eb4db
Branches
Tags
No related merge requests found
......@@ -146,6 +146,19 @@ class IrModule(models.Model):
r.append("Error while importing module '%s'.\n\n %s \n Make sure those modules are installed and try again." % (mod, error))
return '\n'.join(r), module_names
def module_uninstall(self):
# Delete an ir_module_module record completely if it was an imported
# one. The rationale behind this is that an imported module *cannot* be
# reinstalled anyway, as it requires the data files. Any attempt to
# install it again will simply fail without trace.
res = super().module_uninstall()
modules_to_delete = self.filtered('imported')
if modules_to_delete:
_logger.info("deleting imported modules upon uninstallation: %s",
", ".join(modules_to_delete.mapped('name')))
modules_to_delete.unlink()
return res
def _is_studio_custom(path):
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment