2626from .. 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
3237class 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
0 commit comments