From cd5cc69bf696b4fe7d46d50d08ba03a1cf466370 Mon Sep 17 00:00:00 2001 From: Sebastian Glasl Date: Fri, 31 Jul 2026 16:06:13 +0200 Subject: [PATCH] FIX: ignore module "studio_customization" that is only present in the database, The Odoo Enterprise "Studio" module creates a new module "studio_customization" in the database. Since we're only comparing checksums of modules stored in the file system, ignoring this fixes the update mechanism on Odoo Enterprise installations. --- module_auto_update/models/module.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/module_auto_update/models/module.py b/module_auto_update/models/module.py index 86a9c584b41..7e9f9878665 100644 --- a/module_auto_update/models/module.py +++ b/module_auto_update/models/module.py @@ -81,19 +81,19 @@ def _save_checksums(self, checksums): @api.model def _save_installed_checksums(self): checksums = {} - installed_modules = self.search([("state", "=", "installed")]) + installed_modules = self.search(["&", ("state", "=", "installed"), ("name", "!=", "studio_customization")]) for module in installed_modules: checksums[module.name] = module._get_checksum_dir() self._save_checksums(checksums) @api.model def _get_modules_partially_installed(self): - return self.search([("state", "in", ("to install", "to remove", "to upgrade"))]) + return self.search(["&", ("state", "in", ["to install", "to remove", "to upgrade"]), ("name", "!=", "studio_customization")]) @api.model def _get_modules_with_changed_checksum(self): saved_checksums = self._get_saved_checksums() - installed_modules = self.search([("state", "=", "installed")]) + installed_modules = self.search(["&", ("state", "=", "installed"), ("name", "!=", "studio_customization")]) return installed_modules.filtered( lambda r: r._get_checksum_dir() != saved_checksums.get(r.name), )