From b2a7df5cd0964914c9eda9107f88191c5a1ac064 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Mon, 8 Jan 2024 18:49:34 +0100 Subject: [PATCH] [FIX] membership_extension: Don't return early Don't return before consuming whole recordset. --- .../models/membership_line.py | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/membership_extension/models/membership_line.py b/membership_extension/models/membership_line.py index e811e6cd4..9e561d54b 100644 --- a/membership_extension/models/membership_line.py +++ b/membership_extension/models/membership_line.py @@ -51,17 +51,20 @@ def _onchange_membership_date(self): self.date_to = date_to def _compute_state(self): - # pylint: disable=missing-return - for line in self: - if isinstance(line.id, models.NewId) or not line.account_invoice_id: - line.state = line.state or "none" - elif ( - line.account_invoice_id.state == "posted" - and line.account_invoice_id.payment_state == "reversed" - ): - line.state = "canceled" - else: - return super(MembershipLine, line)._compute_state() + no_invoice_lines = self.filtered( + lambda line: isinstance(line.id, models.NewId) + or not line.account_invoice_id + ) + cancelled_lines = self.filtered( + lambda line: line.account_invoice_id.state == "posted" + and line.account_invoice_id.payment_state == "reversed" + ) + cancelled_lines.state = "canceled" + for line in no_invoice_lines: + line.state = line.state or "none" + return super( + MembershipLine, self - no_invoice_lines - cancelled_lines + )._compute_state() # Empty method _inverse_state def _inverse_state(self):