diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index 2a9a9d79b9d..7866ce4aa97 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -374,12 +374,12 @@ class Lead(models.Model): self._table, ['create_date', 'team_id']) return res - @api.model - def create(self, vals): - lead = super(Lead, self).create(vals) + @api.model_create_multi + def create(self, vals_list): + leads = super().create(vals_list) # Compute new probability for each lead separately - lead._update_probability() - return lead + leads._update_probability() + return leads def write(self, vals): # stage change: diff --git a/addons/purchase_stock/models/purchase.py b/addons/purchase_stock/models/purchase.py index cf28c11d272..6f1b774ca94 100644 --- a/addons/purchase_stock/models/purchase.py +++ b/addons/purchase_stock/models/purchase.py @@ -304,12 +304,11 @@ class PurchaseOrderLine(models.Model): total += move.product_uom._compute_quantity(move.product_uom_qty, line.product_uom) line.qty_received = total - @api.model - def create(self, values): - line = super(PurchaseOrderLine, self).create(values) - if line.order_id.state == 'purchase': - line._create_or_update_picking() - return line + @api.model_create_multi + def create(self, vals_list): + lines = super(PurchaseOrderLine, self).create(vals_list) + lines.filtered(lambda l: l.order_id.state == 'purchase')._create_or_update_picking() + return lines def write(self, values): for line in self.filtered(lambda l: not l.display_type): diff --git a/addons/sale_purchase/models/sale_order.py b/addons/sale_purchase/models/sale_order.py index 9eb6ef55849..dc645a7830a 100644 --- a/addons/sale_purchase/models/sale_order.py +++ b/addons/sale_purchase/models/sale_order.py @@ -109,13 +109,14 @@ class SaleOrderLine(models.Model): # CRUD # -------------------------- - @api.model + @api.model_create_multi def create(self, values): - line = super(SaleOrderLine, self).create(values) + lines = super(SaleOrderLine, self).create(values) # Do not generate purchase when expense SO line since the product is already delivered - if line.state == 'sale' and not line.is_expense: - line.sudo()._purchase_service_generation() - return line + lines.filtered( + lambda line: line.state == 'sale' and not line.is_expense + )._purchase_service_generation() + return lines def write(self, values): increased_lines = None