From 6f4faaf50381fe13b005792858a951a1da82ef57 Mon Sep 17 00:00:00 2001 From: Gael Le Mignot Date: Wed, 27 Apr 2022 11:29:44 +0200 Subject: [PATCH] Closing accounts if not paid 48 hours after 3rd mail --- .../commands/teleforma-send-payment-emails.py | 20 ++++++++++++++++--- teleforma/templates/payment/email_close.txt | 13 ++++++++++++ .../templates/payment/email_close_subject.txt | 1 + 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 teleforma/templates/payment/email_close.txt create mode 100644 teleforma/templates/payment/email_close_subject.txt diff --git a/teleforma/management/commands/teleforma-send-payment-emails.py b/teleforma/management/commands/teleforma-send-payment-emails.py index 5f24d826..84edd039 100644 --- a/teleforma/management/commands/teleforma-send-payment-emails.py +++ b/teleforma/management/commands/teleforma-send-payment-emails.py @@ -8,6 +8,7 @@ from django.utils import translation from teleforma.models import * import logging import datetime +from django.core.exceptions import ObjectDoesNotExist class Logger: """A logging object""" @@ -52,16 +53,29 @@ class Command(BaseCommand): today = datetime.date.today() for student in students: - if student.is_subscribed and student.user.email and student.period == period and student.user.is_active : + try: + user = student.user + except ObjectDoesNotExist: + logger.logger.warning('missing user object for %s' % student.pk) + continue + + if student.is_subscribed and user.email and student.period == period and user.is_active : for payment in student.payments.filter(type = 'online').exclude(online_paid = True).filter(scheduled__lte = today): if payment.scheduled == today: self.email(student, 'initial', payment) - logger.logger.info('initial email send for %s on %d' % (student.user.username, payment.id)) + logger.logger.info('initial email send for %s on %d' % (user.username, payment.id)) else: delta = today - payment.scheduled delta = delta.days if delta % 7 == 0: self.email(student, 'reminder', payment) - logger.logger.info('reminder email send for %s on %d' % (student.user.username, payment.id)) + logger.logger.info('reminder email send for %s on %d' % (user.username, payment.id)) + elif delta == 16: + self.email(student, 'close', payment) + student.restricted = True + student.save() + logger.logger.info('closing account for %s on %d' % (user.username, payment.id)) + + logger.logger.info('############## Done #################') diff --git a/teleforma/templates/payment/email_close.txt b/teleforma/templates/payment/email_close.txt new file mode 100644 index 00000000..6b812e04 --- /dev/null +++ b/teleforma/templates/payment/email_close.txt @@ -0,0 +1,13 @@ +Bonjour, + +Dans le cadre de votre inscription à la formation {{ period }} +et suite à trois relances infructueuses dans le paiement de +votre échéance, nous vous informons que votre compte est désormais +restreint. + +Pour accéder à nouveau au contenu de votre formation, nous vous +invitons à procéder au règlement depuis le dernier lien de paiement +que vous avez reçu par mail. + +Cordialement, +L’équipe du Pré-Barreau diff --git a/teleforma/templates/payment/email_close_subject.txt b/teleforma/templates/payment/email_close_subject.txt new file mode 100644 index 00000000..289db1f3 --- /dev/null +++ b/teleforma/templates/payment/email_close_subject.txt @@ -0,0 +1 @@ +Compte restreint – formation Pré-Barreau -- 2.39.5