diff --git a/addons/event_sale/models/event_registration.py b/addons/event_sale/models/event_registration.py index 9300d610790..a17821cdc1c 100644 --- a/addons/event_sale/models/event_registration.py +++ b/addons/event_sale/models/event_registration.py @@ -26,19 +26,18 @@ class EventRegistration(models.Model): @api.depends('sale_order_id.state', 'sale_order_id.currency_id', 'sale_order_line_id.price_total') def _compute_registration_status(self): - self.filtered(lambda reg: not reg.state).state = 'draft' for so_line, registrations in self.grouped('sale_order_line_id').items(): cancelled_so_registrations = registrations.filtered(lambda reg: reg.sale_order_id.state == 'cancel') cancelled_so_registrations.state = 'cancel' cancelled_registrations = cancelled_so_registrations | registrations.filtered(lambda reg: reg.state == 'cancel') if not so_line or float_is_zero(so_line.price_total, precision_digits=so_line.currency_id.rounding): registrations.sale_status = 'free' - registrations.filtered(lambda reg: reg.state == 'draft').write({"state": "open"}) + registrations.filtered(lambda reg: not reg.state or reg.state == 'draft').state = "open" else: sold_registrations = registrations.filtered(lambda reg: reg.sale_order_id.state == 'sale') - cancelled_registrations sold_registrations.sale_status = 'sold' (registrations - sold_registrations).sale_status = 'to_pay' - sold_registrations.filtered(lambda reg: reg.state in {'draft', 'cancel'}).write({"state": "open"}) + sold_registrations.filtered(lambda reg: not reg.state or reg.state in {'draft', 'cancel'}).state = "open" (registrations - sold_registrations - cancelled_registrations).state = 'draft' @api.depends('sale_order_id')