Skip to content

Commit 259e9eb

Browse files
committed
Merge PR #3493 into 19.0
Signed-off-by pedrobaeza
2 parents e7d0c91 + aca06d6 commit 259e9eb

4 files changed

Lines changed: 27 additions & 22 deletions

File tree

upgrade_analysis/models/upgrade_analysis.py

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,12 @@
2626
from .. import compare
2727

2828
_logger = logging.getLogger(__name__)
29-
_IGNORE_MODULES = ["openupgrade_records", "upgrade_analysis"]
29+
_IGNORE_MODULES = [
30+
"openupgrade_records",
31+
"upgrade_analysis",
32+
"openupgrade_framework",
33+
"openupgrade_scripts",
34+
]
3035

3136

3237
class UpgradeAnalysis(models.Model):
@@ -181,7 +186,7 @@ def analyze(self):
181186
remote_model_records, local_model_records
182187
)
183188

184-
affected_modules = sorted(
189+
affected_modules = list(
185190
{
186191
record["module"]
187192
for record in remote_records
@@ -194,7 +199,7 @@ def analyze(self):
194199
)
195200
if "base" in affected_modules:
196201
try:
197-
pass
202+
from odoo.addons.openupgrade_scripts import apriori # noqa: F401
198203
except ImportError:
199204
_logger.error(
200205
"You are using upgrade_analysis on core modules without "
@@ -205,21 +210,19 @@ def analyze(self):
205210
)
206211

207212
# reorder and output the result
208-
keys = ["general"] + affected_modules
209213
modules = {
210214
module["name"]: module
211215
for module in self.env["ir.module.module"].search(
212216
[("state", "=", "installed")]
213217
)
214218
}
219+
keys = ["general"] + sorted(
220+
(set(affected_modules) | set(modules.keys())) - set(_IGNORE_MODULES)
221+
)
215222
general_log = ""
216223

217224
no_changes_modules = []
218225

219-
for ignore_module in _IGNORE_MODULES:
220-
if ignore_module in keys:
221-
keys.remove(ignore_module)
222-
223226
for key in keys:
224227
contents = f"---Models in module '{key}'---\n"
225228
if key in res_model:
@@ -245,8 +248,8 @@ def analyze(self):
245248
if compare.module_map(key) not in modules:
246249
general_log += f"---Probably obsolete module {key}---\n" + contents
247250
continue
248-
if key not in modules:
249-
# no need to log in full log the merged/renamed modules
251+
if key not in modules or key in no_changes_modules:
252+
# no need to log in full log the merged/renamed/unchanged modules
250253
continue
251254
if self.write_files:
252255
error = self._write_file(key, modules[key].installed_version, contents)
@@ -264,12 +267,13 @@ def analyze(self):
264267
general_log,
265268
"upgrade_general_log.txt",
266269
)
267-
270+
noupdate_modules = []
268271
try:
269-
self.generate_noupdate_changes()
272+
noupdate_modules = self.generate_noupdate_changes()
270273
except Exception as e:
271274
_logger.exception(f"Error generating noupdate changes: {e}")
272275
general_log += "ERROR: error when generating noupdate changes: {e}\n"
276+
no_changes_modules = list(set(no_changes_modules) - set(noupdate_modules))
273277
try:
274278
self.generate_module_coverage_file(no_changes_modules)
275279
except Exception as e:
@@ -480,6 +484,7 @@ def generate_noupdate_changes(self):
480484
local_record_obj = self.env["upgrade.record"]
481485
local_modules = local_record_obj.list_modules()
482486
all_remote_modules = remote_record_obj.list_modules()
487+
changed_modules = []
483488
for local_module in local_modules:
484489
remote_files = []
485490
remote_modules = []
@@ -508,33 +513,29 @@ def generate_noupdate_changes(self):
508513
module = self.env["ir.module.module"].search(
509514
[("name", "=", local_module)]
510515
)
516+
changed_modules.append(local_module)
511517
self._write_file(
512518
local_module,
513519
module.installed_version,
514520
diff,
515521
filename="noupdate_changes.xml",
516522
)
517-
return True
523+
return changed_modules
518524

519525
def generate_module_coverage_file(self, no_changes_modules):
520526
self.ensure_one()
521527

522528
module_coverage_file_folder = config.get("module_coverage_file_folder", False)
523529

524530
if not module_coverage_file_folder:
525-
return
531+
return False
526532

527533
module_domain = [
528534
("state", "=", "installed"),
529535
(
530536
"name",
531537
"not in",
532-
[
533-
"upgrade_analysis",
534-
"openupgrade_records",
535-
"openupgrade_scripts",
536-
"openupgrade_framework",
537-
],
538+
_IGNORE_MODULES,
538539
),
539540
]
540541

upgrade_analysis/models/upgrade_comparison_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def test_connection(self):
8080

8181
def new_analysis(self):
8282
self.ensure_one()
83-
analysis = self.env["upgrade.analysis"].create({"config_id": self.id})
83+
analysis = self.env["upgrade.analysis"].create([{"config_id": self.id}])
8484
return {
8585
"name": analysis._description,
8686
"view_mode": "form",

upgrade_analysis/odoo_patch/odoo/addons/base/models/ir_model.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import logging
2+
13
# ruff: noqa
24
from odoo import models
35

@@ -6,6 +8,8 @@
68
from ...... import upgrade_log
79
from .....odoo_patch import OdooPatch
810

11+
_logger = logging.getLogger(__name__)
12+
913

1014
class IrModelConstraintPatch(OdooPatch):
1115
target = ir_model.IrModelConstraint

upgrade_analysis/wizards/upgrade_install_wizard.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def _module_ids_domain(self, extra_domain=None):
4040
]
4141
)
4242
if extra_domain:
43-
domain = Domain.AND(domain, extra_domain)
43+
domain = Domain.AND([domain, extra_domain])
4444
modules = self.env["ir.module.module"].search(domain)
4545

4646
for start_pattern in BLACKLIST_MODULES_STARTS_WITH:

0 commit comments

Comments
 (0)