From e8697f609372cd61b045c4ee2c7f0fcfb496f58a Mon Sep 17 00:00:00 2001 From: Victor Feyens Date: Tue, 1 Sep 2020 08:46:26 +0000 Subject: [PATCH] [FIX] sale_coupon: batch confirmation of sales orders `_send_reward_coupon_mail` is defined as `ensure_one` but is called on `self` in `action_confirm` which supports multiple records in self, thus raising a ValueError when confirming multiple sales orders together. This commit adapts the method to handle multiple records. FW-Port of odoo/enterprise#12161 closes odoo/odoo#56861 X-original-commit: 99c230c1c167d7369f8003c0219386799f92097d Signed-off-by: Victor Feyens (vfe) Co-authored-by: Alex Comba --- addons/sale_coupon/models/sale_order.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/sale_coupon/models/sale_order.py b/addons/sale_coupon/models/sale_order.py index 742781355ae..50d04f68725 100644 --- a/addons/sale_coupon/models/sale_order.py +++ b/addons/sale_coupon/models/sale_order.py @@ -240,12 +240,13 @@ class SaleOrder(models.Model): def _send_reward_coupon_mail(self): template = self.env.ref('coupon.mail_template_sale_coupon', raise_if_not_found=False) if template: - for coupon in self.generated_coupon_ids: - self.message_post_with_template( - template.id, composition_mode='comment', - model='coupon.coupon', res_id=coupon.id, - email_layout_xmlid='mail.mail_notification_light', - ) + for order in self: + for coupon in order.generated_coupon_ids: + order.message_post_with_template( + template.id, composition_mode='comment', + model='coupon.coupon', res_id=coupon.id, + email_layout_xmlid='mail.mail_notification_light', + ) def _get_applicable_programs(self): """