From 4135a30ea8c5c1d43f9db76a371100e88e4d15f5 Mon Sep 17 00:00:00 2001 From: Miquel Rosell Date: Wed, 20 May 2026 16:51:24 +0200 Subject: [PATCH] [FIX] maintenance_equipment_sequence: convert create to api.model_create_multi Converts MaintenanceEquipmentCategory.create() and MaintenanceEquipment.create() to batch-compatible api.model_create_multi for Odoo 17 best practice. --- .../models/maintenance.py | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/maintenance_equipment_sequence/models/maintenance.py b/maintenance_equipment_sequence/models/maintenance.py index 42eb29066..d6640314f 100644 --- a/maintenance_equipment_sequence/models/maintenance.py +++ b/maintenance_equipment_sequence/models/maintenance.py @@ -63,16 +63,17 @@ def _inverse_seq_number_next(self): sequence = category.sequence_id._get_current_sequence() sequence.sudo().number_next = category.sequence_number_next - @api.model - def create(self, vals): - if not vals.get("sequence_id", False): - if vals.get("sequence_prefix", False): - vals["sequence_id"] = self.sudo()._create_sequence(vals).id - else: - vals["sequence_prefix"] = ( - self.env["ir.sequence"].browse(vals["sequence_id"]).prefix - ) - result = super().create(vals) + @api.model_create_multi + def create(self, vals_list): + for vals in vals_list: + if not vals.get("sequence_id", False): + if vals.get("sequence_prefix", False): + vals["sequence_id"] = self.sudo()._create_sequence(vals).id + else: + vals["sequence_prefix"] = ( + self.env["ir.sequence"].browse(vals["sequence_id"]).prefix + ) + result = super().create(vals_list) self._compute_equipment_code() return result @@ -107,18 +108,19 @@ def _compute_equipment_code(self): class MaintenanceEquipment(models.Model): _inherit = "maintenance.equipment" - @api.model - def create(self, vals): - equipment = super().create(vals) - if equipment.category_id and not equipment.serial_no: - sequence_id = ( - self.env["maintenance.equipment.category"] - .browse(vals["category_id"]) - .sequence_id - ) - if sequence_id: - equipment.serial_no = sequence_id._next() - return equipment + @api.model_create_multi + def create(self, vals_list): + equipments = super().create(vals_list) + for equipment, vals in zip(equipments, vals_list): + if equipment.category_id and not equipment.serial_no: + sequence_id = ( + self.env["maintenance.equipment.category"] + .browse(vals.get("category_id")) + .sequence_id + ) + if sequence_id: + equipment.serial_no = sequence_id._next() + return equipments def write(self, vals): result = super().write(vals)