add new task for sending new messages to the chat
This commit is contained in:
@@ -7,42 +7,42 @@ from django.dispatch import receiver
|
||||
from core.apps.chat.models import ChatmessageModel, ChatroomModel
|
||||
|
||||
|
||||
@receiver(post_save, sender=ChatmessageModel)
|
||||
def broadcast_new_message(sender, instance, created, **kwargs):
|
||||
"""Yangi xabar saqlanganda xonadagi barcha WS ulanishlariga yuboradi."""
|
||||
if not created:
|
||||
return
|
||||
# @receiver(post_save, sender=ChatmessageModel)
|
||||
# def broadcast_new_message(sender, instance, created, **kwargs):
|
||||
# """Yangi xabar saqlanganda xonadagi barcha WS ulanishlariga yuboradi."""
|
||||
# if not created:
|
||||
# return
|
||||
|
||||
channel_layer = get_channel_layer()
|
||||
if channel_layer is None:
|
||||
return
|
||||
# channel_layer = get_channel_layer()
|
||||
# if channel_layer is None:
|
||||
# return
|
||||
|
||||
sender_obj = instance.sender
|
||||
if sender_obj:
|
||||
full_name = sender_obj.get_full_name().strip() or str(sender_obj.phone)
|
||||
sender_data = {
|
||||
"id": sender_obj.id,
|
||||
"full_name": full_name,
|
||||
"role": sender_obj.role,
|
||||
}
|
||||
else:
|
||||
sender_data = None
|
||||
# sender_obj = instance.sender
|
||||
# if sender_obj:
|
||||
# full_name = sender_obj.get_full_name().strip() or str(sender_obj.phone)
|
||||
# sender_data = {
|
||||
# "id": sender_obj.id,
|
||||
# "full_name": full_name,
|
||||
# "role": sender_obj.role,
|
||||
# }
|
||||
# else:
|
||||
# sender_data = None
|
||||
|
||||
site_url = getattr(settings, "SITE_URL", "").rstrip("/")
|
||||
file_url = (site_url + instance.file.url) if instance.file else None
|
||||
# site_url = getattr(settings, "SITE_URL", "").rstrip("/")
|
||||
# file_url = (site_url + instance.file.url) if instance.file else None
|
||||
|
||||
async_to_sync(channel_layer.group_send)(
|
||||
f"chat_room_{instance.room_id}",
|
||||
{
|
||||
"type": "chat_message",
|
||||
"id": instance.id,
|
||||
"message_type": instance.message_type,
|
||||
"text": instance.text,
|
||||
"file_url": file_url,
|
||||
"sender": sender_data,
|
||||
"created_at": instance.created_at.isoformat(),
|
||||
},
|
||||
)
|
||||
# async_to_sync(channel_layer.group_send)(
|
||||
# f"chat_room_{instance.room_id}",
|
||||
# {
|
||||
# "type": "chat_message",
|
||||
# "id": instance.id,
|
||||
# "message_type": instance.message_type,
|
||||
# "text": instance.text,
|
||||
# "file_url": file_url,
|
||||
# "sender": sender_data,
|
||||
# "created_at": instance.created_at.isoformat(),
|
||||
# },
|
||||
# )
|
||||
|
||||
|
||||
@receiver(post_save, sender="evaluation.AutoEvaluationModel")
|
||||
|
||||
Reference in New Issue
Block a user