From dd851043b006ce82a70f0d25926573edce4749dd Mon Sep 17 00:00:00 2001 From: Yoan Le Clanche Date: Wed, 28 Jan 2026 14:15:42 +0100 Subject: [PATCH] Update balance fix --- teleforma/models/crfpa.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/teleforma/models/crfpa.py b/teleforma/models/crfpa.py index a0a69f03..db330830 100755 --- a/teleforma/models/crfpa.py +++ b/teleforma/models/crfpa.py @@ -184,18 +184,7 @@ else: def __str__(self): return self.user.get_full_name() -def update_balance_signal(sender, instance, *args, **kwargs): - try: - if sender is Student or sender: - instance.update_balance() - elif sender in (Discount, OptionalFee, Payment, Payback): - instance.student.update_balance() - except: - pass - - -signals.post_save.connect(update_balance_signal) -signals.post_delete.connect(update_balance_signal) +# Les signaux pour update_balance sont définis après les modèles Payment, Discount, OptionalFee, Payback class Profile(models.Model): @@ -357,6 +346,18 @@ class Payback(models.Model): verbose_name_plural = _("Paybacks") +# Signaux pour mettre à jour automatiquement la balance des étudiants +def update_balance_signal(sender, instance, *args, **kwargs): + if sender is Student: + instance.update_balance() + elif sender in (Discount, OptionalFee, Payment, Payback): + instance.student.update_balance() + + +signals.post_save.connect(update_balance_signal) +signals.post_delete.connect(update_balance_signal) + + class Home(models.Model): title = models.CharField('Title (interne)', max_length=255, -- 2.39.5