From 602acc4801591e362c5d2f4b970d66512018135e Mon Sep 17 00:00:00 2001 From: Eleftherios Kritsotakis Date: Fri, 15 Apr 2022 11:01:51 +0000 Subject: [PATCH] [FIX] pos_loyalty: load reward products Before this commit, if the config setting limited_products_loading was activated, some reward products might not get loaded in the frontend. So the UI crashed whenever a reward product was accessed. In this commit we force-load all the reward products at the start of session, regardless of the number of loaded products (loading_products_amount) Part-of: odoo/odoo#84719 --- addons/pos_loyalty/models/pos_session.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/pos_loyalty/models/pos_session.py b/addons/pos_loyalty/models/pos_session.py index f67a83dd885..f6c74665735 100644 --- a/addons/pos_loyalty/models/pos_session.py +++ b/addons/pos_loyalty/models/pos_session.py @@ -97,3 +97,12 @@ class PosSession(models.Model): (rewards.all_discount_product_ids | rewards.reward_product_ids) result['search_params']['domain'] = OR([result['search_params']['domain'], [('id', 'in', products.ids)]]) return result + + def _get_pos_ui_product_product(self, params): + result = super()._get_pos_ui_product_product(params) + rewards = self.config_id.all_program_ids.reward_ids + products = rewards.discount_line_product_id | rewards.reward_product_ids + products = self.env['product.product'].search_read([('id', 'in', products.ids)], fields=params['search_params']['fields']) + self._process_pos_ui_product_product(products) + result.extend(products) + return result