]> git.parisson.com Git - teleforma.git/commitdiff
treat existing students for other periods
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Tue, 30 Nov 2021 14:01:42 +0000 (15:01 +0100)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Tue, 30 Nov 2021 14:01:42 +0000 (15:01 +0100)
teleforma/management/commands/teleforma-copy-students.py
teleforma/ws/chat.py

index f52ea6ab31a04c8bc9f26a76d2d3884343db2168..74967e01b5d2e2ae0e92113e0ce3a2a1af44e538 100644 (file)
@@ -75,7 +75,11 @@ class Command(BaseCommand):
                     for s in students_to[1:]:
                         s.delete()
                         self.logger.logger.info('duplicated student deleted: ' + s.user.username)
-                student = students_to[0]
+                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
 
             for payment in payments:
                 date_created = deepcopy(payment.date_created)
@@ -87,12 +91,13 @@ class Command(BaseCommand):
                     ', date created:' + str(date_created) + \
                      ', value: ' + str(payment.value))
 
-            for discount in discounts:
-                discount.pk = None
-                discount.save(using=self.db_to)
-                discount.student = student
-                discount.save(using=self.db_to)
-                self.logger.logger.info('discount added: ' + str(discount.value))
+            if new:
+                for discount in discounts:
+                    discount.pk = None
+                    discount.save(using=self.db_to)
+                    discount.student = student
+                    discount.save(using=self.db_to)
+                    self.logger.logger.info('discount added: ' + str(discount.value))
 
             for optional_fee in optional_fees:
                 optional_fee.pk = None
@@ -124,7 +129,7 @@ class Command(BaseCommand):
         students_to_email = [student.user.email for student in students_to if (hasattr(student, 'user') and hasattr(student.user, 'email'))]
 
         new_students = []
-        re_registered_students = []
+        existing_students = []
 
         for student in students_from:
             # print(student)
@@ -133,17 +138,18 @@ class Command(BaseCommand):
                     if not student.user.email in students_to_email:
                         new_students.append(student)
                     else:
-                        re_registered_students.append(student)
+                        existing_students.append(student)
 
-        # print(len(new_students))
-        # print(len(re_registered_students))
+        # print('new_students: ', len(new_students))
+        # print('existing_students: ', len(existing_students))
 
         self.logger.logger.info('Number of new students to copy : ' + str(len(new_students)) + '\n')
-        self.logger.logger.info('Number of new students to update : ' + str(len(re_registered_students)) + '\n')
+        self.logger.logger.info('Number of new students to update : ' + str(len(existing_students)) + '\n')
+
+        # for student in new_students:
+        #     self.process_student(student)
 
-        for student in new_students:
-            self.process_student(student)
-        for student in re_registered_students:
+        for student in existing_students:
             self.process_student(student, new=False)
 
 
index 4bc02f8d9ab862e377301894666f47468660c61f..4dfd56e95827f193d4ddf4967ec28b064de99915 100644 (file)
@@ -4,8 +4,11 @@ from teleforma.models.chat import ChatMessage
 from django.conf import settings 
 from channels.generic.websocket import AsyncJsonWebsocketConsumer
 from channels.db import database_sync_to_async
+
+
 @log_consumer_exceptions
 class ChatConsumer(AsyncJsonWebsocketConsumer):
+
     async def connect(self):
 
         self.room_name = self.scope['url_route']['kwargs']['room_name']
@@ -61,4 +64,4 @@ class ChatConsumer(AsyncJsonWebsocketConsumer):
         message = event['message']
 
         # Send message to WebSocket
-        await self.send_json(content={'type':'new', 'messages':[message]})
\ No newline at end of file
+        await self.send_json(content={'type':'new', 'messages':[message]})