|
|
@ -8,6 +8,7 @@ import requests
|
|
|
|
from django.forms.models import model_to_dict
|
|
|
|
from django.forms.models import model_to_dict
|
|
|
|
from django.core.serializers.json import DjangoJSONEncoder
|
|
|
|
from django.core.serializers.json import DjangoJSONEncoder
|
|
|
|
from django.db.models import Case, When, F, Max, DateTimeField
|
|
|
|
from django.db.models import Case, When, F, Max, DateTimeField
|
|
|
|
|
|
|
|
from django.db import transaction
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -331,7 +332,7 @@ class OsitcomChatRoom(WebsocketConsumer):
|
|
|
|
if not self.visitor:
|
|
|
|
if not self.visitor:
|
|
|
|
self.close()
|
|
|
|
self.close()
|
|
|
|
|
|
|
|
|
|
|
|
if self.scope['url_route']['kwargs'].get('chat_id'): #Case where admin is accessing a specific conversation between the conversations of this visior
|
|
|
|
if self.scope['url_route']['kwargs'].get('chat_id'): #Case where admin is accessing a specific conversation between the conversations of this visitor
|
|
|
|
self.chat_room = get_object_or_404(ChatRoom, id=self.scope['url_route']['kwargs'].get('chat_id'))
|
|
|
|
self.chat_room = get_object_or_404(ChatRoom, id=self.scope['url_route']['kwargs'].get('chat_id'))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
chat_room_guest = ChatRoomGuest.objects.filter(visitor=self.visitor).last() #Case where the visitor will always acesss his last conversation
|
|
|
|
chat_room_guest = ChatRoomGuest.objects.filter(visitor=self.visitor).last() #Case where the visitor will always acesss his last conversation
|
|
|
@ -371,6 +372,8 @@ class OsitcomChatRoom(WebsocketConsumer):
|
|
|
|
self.load_chat_handler(event)
|
|
|
|
self.load_chat_handler(event)
|
|
|
|
|
|
|
|
|
|
|
|
if event_type == 'start_conversation':
|
|
|
|
if event_type == 'start_conversation':
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
with transaction.atomic():
|
|
|
|
chat_room = ChatRoom.objects.create(
|
|
|
|
chat_room = ChatRoom.objects.create(
|
|
|
|
name=f"Support: {self.session_id}",
|
|
|
|
name=f"Support: {self.session_id}",
|
|
|
|
date_created = datetime.now()
|
|
|
|
date_created = datetime.now()
|
|
|
@ -400,6 +403,9 @@ class OsitcomChatRoom(WebsocketConsumer):
|
|
|
|
async_to_sync(self.channel_layer.group_send)(
|
|
|
|
async_to_sync(self.channel_layer.group_send)(
|
|
|
|
self.group, event
|
|
|
|
self.group, event
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
|
|
print('Error starting conversation')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if event_type == 'typing':
|
|
|
|
if event_type == 'typing':
|
|
|
|
event = {
|
|
|
|
event = {
|
|
|
|