From: Guillaume Pellerin Date: Tue, 30 Nov 2021 14:01:42 +0000 (+0100) Subject: treat existing students for other periods X-Git-Tag: 2.5.0~4^2 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=9db5f97e8180e17ff52f8b8bb6096dc6357e14f6;p=teleforma.git treat existing students for other periods --- diff --git a/teleforma/management/commands/teleforma-copy-students.py b/teleforma/management/commands/teleforma-copy-students.py index f52ea6ab..74967e01 100644 --- a/teleforma/management/commands/teleforma-copy-students.py +++ b/teleforma/management/commands/teleforma-copy-students.py @@ -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) diff --git a/teleforma/ws/chat.py b/teleforma/ws/chat.py index 4bc02f8d..4dfd56e9 100644 --- a/teleforma/ws/chat.py +++ b/teleforma/ws/chat.py @@ -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]})