From 79f0658c10c2ae77b2c891a823a5b60cfda6fefa Mon Sep 17 00:00:00 2001 From: "Lucas Perais (lpe)" Date: Tue, 29 May 2018 10:55:50 +0200 Subject: [PATCH] [FIX] point_of_sale: pos_config write should be @multi compliant Avoid "expected singleton" when writing on multiple pos_config closes #24953 --- addons/point_of_sale/models/pos_config.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py index db88b7c6638..efca9a08428 100644 --- a/addons/point_of_sale/models/pos_config.py +++ b/addons/point_of_sale/models/pos_config.py @@ -351,11 +351,12 @@ class PosConfig(models.Model): @api.multi def write(self, vals): - if (self.is_posbox or vals.get('is_posbox')) and (self.iface_customer_facing_display or vals.get('iface_customer_facing_display')): - facing_display = (self.customer_facing_display_html or vals.get('customer_facing_display_html') or '').strip() - if not facing_display: - vals['customer_facing_display_html'] = self._compute_default_customer_html() result = super(PosConfig, self).write(vals) + + config_display = self.filtered(lambda c: c.is_posbox and c.iface_customer_facing_display and not (c.customer_facing_display_html or '').strip()) + if config_display: + super(PosConfig, config_display).write({'customer_facing_display_html': self._compute_default_customer_html()}) + self.sudo()._set_fiscal_position() self.sudo()._check_modules_to_install() self.sudo()._check_groups_implied()