From 39ab83a4efd4d5f20013d2d130fadbb834112e20 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 30 Nov 2021 16:18:20 +0100 Subject: [PATCH] add more checks and condition --- .../commands/teleforma-copy-students.py | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/teleforma/management/commands/teleforma-copy-students.py b/teleforma/management/commands/teleforma-copy-students.py index 74967e01..dbaf1a38 100644 --- a/teleforma/management/commands/teleforma-copy-students.py +++ b/teleforma/management/commands/teleforma-copy-students.py @@ -11,6 +11,7 @@ import os from copy import deepcopy from teleforma.models.crfpa import Profile from teleforma.forms import get_unique_username +import datetime class Logger: @@ -27,11 +28,11 @@ class Logger: class Command(BaseCommand): help = "Copy students from one DB to another" - period_name = 'Annuelle' + period_name = 'Estivale' db_from = 'recovery' db_to = 'default' - logger = Logger('/var/log/app/student_import_from_recovery.log') - + logger = Logger('/var/log/app/student_update_from_recovery-' + period_name + '.log') + date_limit = datetime.datetime(year=2021, month=8, day=7, hour=6) def process_student(self, student, new=True): self.logger.logger.info('----------------------------------------------------------------') @@ -78,18 +79,20 @@ class Command(BaseCommand): student_to = students_to[0] if student_to.is_subscribed != student.is_subscribed: student_to.is_subscribed = student.is_subscribed - students_to.save() - student = students_to + student_to.save() + student = student_to + #print(student) for payment in payments: date_created = deepcopy(payment.date_created) - payment.pk = None - payment.save(using=self.db_to) - payment.student = student - payment.save(using=self.db_to) - self.logger.logger.info('payment added: ' + student.user.username + \ - ', date created:' + str(date_created) + \ - ', value: ' + str(payment.value)) + if date_created >= date_limit: + payment.pk = None + payment.save(using=self.db_to) + payment.student = student + payment.save(using=self.db_to) + self.logger.logger.info('payment added: ' + student.user.username + \ + ', date created:' + str(date_created) + \ + ', value: ' + str(payment.value)) if new: for discount in discounts: @@ -99,6 +102,10 @@ class Command(BaseCommand): discount.save(using=self.db_to) self.logger.logger.info('discount added: ' + str(discount.value)) + optional_fees_to = student.optional_fees.all() + for optional_fee_to in optional_fees_to: + optional_fee_to.delete() + for optional_fee in optional_fees: optional_fee.pk = None optional_fee.save(using=self.db_to) @@ -106,6 +113,10 @@ class Command(BaseCommand): optional_fee.save(using=self.db_to) self.logger.logger.info('optional_fee added: ' + str(optional_fee.value)) + paybacks_to = student.paybacks.all() + for payback_to in paybacks_to: + payback_to.delete() + for payback in paybacks: payback.pk = None payback.save(using=self.db_to) @@ -126,7 +137,14 @@ class Command(BaseCommand): self.logger.logger.info('Number of student in from : ' + str(students_from.count())) self.logger.logger.info('Number of student in to : ' + str(students_to.count())) - students_to_email = [student.user.email for student in students_to if (hasattr(student, 'user') and hasattr(student.user, 'email'))] + students_to_email = [] + for student in students_to: + try: + if hasattr(student, 'user'): + if student.user.email: + students_to_email.append(student.user.email) + except: + continue new_students = [] existing_students = [] -- 2.39.5