|
|
|
@ -1,4 +1,3 @@ |
|
|
|
|
|
|
|
from django.db.models.signals import post_save |
|
|
|
from django.dispatch import receiver |
|
|
|
|
|
|
|
@ -7,7 +6,7 @@ from apps.chat.models import RoomMessage |
|
|
|
|
|
|
|
|
|
|
|
@receiver(post_save, sender=Course) |
|
|
|
def create_room_message_for_course(sender, instance, created, **kwargs): |
|
|
|
def handle_room_message_for_course(sender, instance, created, **kwargs): |
|
|
|
if created: # فقط برای موارد جدید اجرا شود |
|
|
|
RoomMessage.objects.create( |
|
|
|
name=f"{instance.title} - Group", |
|
|
|
@ -16,12 +15,20 @@ def create_room_message_for_course(sender, instance, created, **kwargs): |
|
|
|
course=instance, |
|
|
|
room_type=RoomMessage.RoomTypeChoices.GROUP |
|
|
|
) |
|
|
|
else: # این بخش در زمان آپدیت دوره اجرا میشود |
|
|
|
# Find the existing group room for this course and update its details |
|
|
|
RoomMessage.objects.filter( |
|
|
|
course=instance, |
|
|
|
room_type=RoomMessage.RoomTypeChoices.GROUP |
|
|
|
).update( |
|
|
|
name=f"{instance.title} - Group", |
|
|
|
description=f"Group chat for course: {instance.title}", |
|
|
|
initiator=instance.professor |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
@receiver(post_save, sender=Course) |
|
|
|
def ensure_professor_role(sender, instance, **kwargs): |
|
|
|
professor = getattr(instance, 'professor', None) |
|
|
|
if professor: |
|
|
|
professor.ensure_professor_profile() |
|
|
|
|
|
|
|
|
|
|
|
professor.ensure_professor_profile() |