|
|
|
@ -78,7 +78,6 @@ class Osichat(WebsocketConsumer):
|
|
|
|
|
event = {
|
|
|
|
|
'type': 'get_chats_handler',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if data.get('whereAmI') == 'Chats':
|
|
|
|
|
self.get_chats_handler(event)
|
|
|
|
|
else:
|
|
|
|
@ -112,7 +111,6 @@ class Osichat(WebsocketConsumer):
|
|
|
|
|
|
|
|
|
|
for room in chat_rooms:
|
|
|
|
|
room.number_of_unread = room.unread_messages(user)
|
|
|
|
|
room.last_message = room.last_updated
|
|
|
|
|
context = {
|
|
|
|
|
'chat_rooms': chat_rooms,
|
|
|
|
|
}
|
|
|
|
@ -120,9 +118,13 @@ class Osichat(WebsocketConsumer):
|
|
|
|
|
if self.client_type == 'mobile_admin':
|
|
|
|
|
chat_rooms_data = []
|
|
|
|
|
for chat_room in chat_rooms:
|
|
|
|
|
last_message = ChatMessage.objects.filter(room=chat_room).last()
|
|
|
|
|
room_data = model_to_dict(chat_room)
|
|
|
|
|
room_data['number_of_unread'] = chat_room.unread_messages(user)
|
|
|
|
|
room_data['last_message'] = chat_room.last_updated
|
|
|
|
|
if last_message:
|
|
|
|
|
room_data['last_message'] = model_to_dict(last_message)
|
|
|
|
|
else:
|
|
|
|
|
room_data['last_message'] = None
|
|
|
|
|
if hasattr(chat_room, 'chatroomguest') and chat_room.chatroomguest.visitor:
|
|
|
|
|
visitor = chat_room.chatroomguest.visitor
|
|
|
|
|
room_data['visitor'] = {
|
|
|
|
@ -159,6 +161,11 @@ class Osichat(WebsocketConsumer):
|
|
|
|
|
}
|
|
|
|
|
if self.client_type == 'mobile_admin':
|
|
|
|
|
chat_room_data = model_to_dict(chat_room)
|
|
|
|
|
chat_room_data['visitor'] = model_to_dict(chat_room.chatroomguest.visitor)
|
|
|
|
|
if last_message:
|
|
|
|
|
chat_room_data['last_message'] = model_to_dict(last_message)
|
|
|
|
|
else:
|
|
|
|
|
chat_room_data['last_message'] = None
|
|
|
|
|
self.send(text_data=json.dumps({
|
|
|
|
|
'event_type': 'new_chat_update',
|
|
|
|
|
'chat_room_data': chat_room_data,
|
|
|
|
@ -182,13 +189,13 @@ class Osichat(WebsocketConsumer):
|
|
|
|
|
if self.client_type == 'mobile_admin':
|
|
|
|
|
visitors_data = []
|
|
|
|
|
for visitor in visitors:
|
|
|
|
|
visitors_data.append({
|
|
|
|
|
'is_online': visitor.is_online,
|
|
|
|
|
'duration': visitor.total_duration,
|
|
|
|
|
})
|
|
|
|
|
visitor_dict = model_to_dict(visitor)
|
|
|
|
|
visitor_logs = VisitorLog.objects.filter(visitor=visitor)
|
|
|
|
|
visitor_dict['is_online'] = visitor.is_online
|
|
|
|
|
visitor_dict['duration'] = visitor.total_duration
|
|
|
|
|
visitor_dict['flag'] = visitor.flag_image_url
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
visitor_logs = VisitorLog.objects.filter(visitor=visitor)
|
|
|
|
|
visitor_logs_data = [model_to_dict(log) for log in visitor_logs]
|
|
|
|
|
visitor_dict['visitor_logs'] = visitor_logs_data
|
|
|
|
|
|
|
|
|
@ -209,11 +216,20 @@ class Osichat(WebsocketConsumer):
|
|
|
|
|
|
|
|
|
|
def new_visitor_update_handler(self, event):
|
|
|
|
|
visitor = get_object_or_404(Visitor, id=event['visitor_id'])
|
|
|
|
|
latest_log = VisitorLog.objects.filter(visitor=visitor).last()
|
|
|
|
|
context = {
|
|
|
|
|
'visitor': visitor,
|
|
|
|
|
}
|
|
|
|
|
if self.client_type == 'mobile_admin':
|
|
|
|
|
visitor_data = model_to_dict(visitor)
|
|
|
|
|
visitor_data['is_online'] = visitor.is_online
|
|
|
|
|
visitor_data['duration'] = visitor.total_duration
|
|
|
|
|
visitor_data['flag'] = visitor.flag_image_url
|
|
|
|
|
if latest_log:
|
|
|
|
|
visitor_data['latest_log'] = model_to_dict(latest_log)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.send(text_data=json.dumps({
|
|
|
|
|
'event_type': 'new_visitor_update',
|
|
|
|
|
'visitor_data': visitor_data,
|
|
|
|
|