]> git.parisson.com Git - teleforma.git/commitdiff
add more checks and condition
authorGuillaume Pellerin <guillaume.pellerin@parisson.com>
Tue, 30 Nov 2021 15:18:20 +0000 (16:18 +0100)
committerGuillaume Pellerin <guillaume.pellerin@parisson.com>
Tue, 30 Nov 2021 15:18:20 +0000 (16:18 +0100)
teleforma/management/commands/teleforma-copy-students.py

index 74967e01b5d2e2ae0e92113e0ce3a2a1af44e538..dbaf1a3872c3fe7fe7502baad7bd9f47d4d150ea 100644 (file)
@@ -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 = []