From 7a855d18e50a988d656af546c8591d392b36d5bf Mon Sep 17 00:00:00 2001 From: bosd <5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me> Date: Thu, 14 May 2026 01:14:24 +0200 Subject: [PATCH 1/2] [FIX] base_tier_validation_correction: restrict resource_ref to tier-validated models The `resource_ref` Reference field on `tier.correction.item` listed every `ir.model` in the database in its selection callback. Two problems: - Performance: every time the field's dropdown was rendered, the callback ran `self.env["ir.model"].search([])` -- a full read of ir.model -- and built ~500 tuples on a stock Odoo install. On large databases with many custom modules the picker noticeably stalls. - Correctness / UX: the dropdown surfaced models that have nothing to do with tier validation (res.partner, res.country, ...), letting an admin reference a record on a model that cannot have tier reviews in the first place. Restrict the selection to the same model set the `tier.correction` form already uses for its `model_id` Many2one -- the result of `tier.definition._get_tier_validation_model_names()`. The picker now only offers models that actually support tier validation, and the underlying query is bounded to that set. --- base_tier_validation_correction/__manifest__.py | 2 +- .../models/tier_correction_item.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/base_tier_validation_correction/__manifest__.py b/base_tier_validation_correction/__manifest__.py index 9dbae3cf..95d1ff15 100644 --- a/base_tier_validation_correction/__manifest__.py +++ b/base_tier_validation_correction/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Base Tier Validation Correction", "summary": "Correct tier.review data after it has been created.", - "version": "19.0.1.0.0", + "version": "19.0.1.0.1", "category": "Tools", "website": "https://github.com/OCA/tier-validation", "author": "Ecosoft,Odoo Community Association (OCA)", diff --git a/base_tier_validation_correction/models/tier_correction_item.py b/base_tier_validation_correction/models/tier_correction_item.py index fa727805..2db1a07e 100644 --- a/base_tier_validation_correction/models/tier_correction_item.py +++ b/base_tier_validation_correction/models/tier_correction_item.py @@ -17,7 +17,18 @@ class TierCorrectionItem(models.Model): resource_ref = fields.Reference( string="Resource", selection=lambda self: [ - (model.model, model.name) for model in self.env["ir.model"].search([]) + (model.model, model.name) + for model in self.env["ir.model"].search( + [ + ( + "model", + "in", + self.env[ + "tier.definition" + ]._get_tier_validation_model_names(), + ) + ] + ) ], readonly=True, ) From 706c8df8ea6563ae261ce6f5e3c914abd4b0304a Mon Sep 17 00:00:00 2001 From: bosd <5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me> Date: Thu, 14 May 2026 09:14:12 +0200 Subject: [PATCH 2/2] [FIX] base_tier_validation_correction: ruff-format resource_ref selection lambda --- .../models/tier_correction_item.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/base_tier_validation_correction/models/tier_correction_item.py b/base_tier_validation_correction/models/tier_correction_item.py index 2db1a07e..cc67f60c 100644 --- a/base_tier_validation_correction/models/tier_correction_item.py +++ b/base_tier_validation_correction/models/tier_correction_item.py @@ -23,9 +23,7 @@ class TierCorrectionItem(models.Model): ( "model", "in", - self.env[ - "tier.definition" - ]._get_tier_validation_model_names(), + self.env["tier.definition"]._get_tier_validation_model_names(), ) ] )