From 86bca35df04c5cba332c6b9de433b50592cc73ae Mon Sep 17 00:00:00 2001 From: Joseph Caburnay Date: Wed, 20 May 2020 10:12:55 +0000 Subject: [PATCH] [FIX] pos_restaurant: floors deleted without notice Floors associated to the pos.config are deleted when is_table_management is set to False from the backend interface because the backend issues a delete request to the server. So instead of setting the [(5,0,0)] command during onchange, we set it in write method to avoid unintended deletion of the floors. --- addons/pos_restaurant/models/pos_config.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/addons/pos_restaurant/models/pos_config.py b/addons/pos_restaurant/models/pos_config.py index 96e28652165..c2047671b2c 100644 --- a/addons/pos_restaurant/models/pos_config.py +++ b/addons/pos_restaurant/models/pos_config.py @@ -25,16 +25,6 @@ class PosConfig(models.Model): 'is_table_management': False, 'iface_orderline_notes': False}) - @api.onchange('is_table_management') - def _onchange_is_table_management(self): - if not self.is_table_management: - self.floor_ids = [(5, 0, 0)] - - @api.onchange('is_order_printer') - def _onchange_is_order_printer(self): - if not self.is_order_printer: - self.printer_ids = [(5, 0, 0)] - def get_tables_order_count(self): """ """ self.ensure_one() @@ -54,3 +44,10 @@ class PosConfig(models.Model): forbidden_keys.append('is_table_management') forbidden_keys.append('floor_ids') return forbidden_keys + + def write(self, vals): + if ('is_table_management' in vals and vals['is_table_management'] == False): + vals['floor_ids'] = [(5, 0, 0)] + if ('is_order_printer' in vals and vals['is_order_printer'] == False): + vals['printer_ids'] = [(5, 0, 0)] + return super(PosConfig, self).write(vals)