|
|
@ -256,7 +256,7 @@ class Osichat(WebsocketConsumer):
|
|
|
|
class OsichatVisitor(WebsocketConsumer):
|
|
|
|
class OsichatVisitor(WebsocketConsumer):
|
|
|
|
def connect(self):
|
|
|
|
def connect(self):
|
|
|
|
self.visitor_id = self.scope['url_route']['kwargs']['visitor_id']
|
|
|
|
self.visitor_id = self.scope['url_route']['kwargs']['visitor_id']
|
|
|
|
self.group_name = str(self.visitor_id)
|
|
|
|
self.group_name = 'V' + str(self.visitor_id)
|
|
|
|
self.visitor = get_object_or_404(Visitor, id=self.visitor_id)
|
|
|
|
self.visitor = get_object_or_404(Visitor, id=self.visitor_id)
|
|
|
|
async_to_sync(self.channel_layer.group_add)(
|
|
|
|
async_to_sync(self.channel_layer.group_add)(
|
|
|
|
self.group_name, self.channel_name
|
|
|
|
self.group_name, self.channel_name
|
|
|
@ -300,6 +300,24 @@ class OsichatVisitor(WebsocketConsumer):
|
|
|
|
'visitor_data': visitor_data,
|
|
|
|
'visitor_data': visitor_data,
|
|
|
|
}, cls=DjangoJSONEncoder))
|
|
|
|
}, cls=DjangoJSONEncoder))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def new_visitor_update_handler(self, event):
|
|
|
|
|
|
|
|
visitor = self.visitor
|
|
|
|
|
|
|
|
latest_log = VisitorLog.objects.filter(visitor=self.visitor).last()
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
latest_log_data = model_to_dict(latest_log)
|
|
|
|
|
|
|
|
latest_log_data['log_duration'] = latest_log.log_duration
|
|
|
|
|
|
|
|
visitor_data['latest_log'] = latest_log_data
|
|
|
|
|
|
|
|
self.send(text_data=json.dumps({
|
|
|
|
|
|
|
|
'event_type': 'new_visitor_update',
|
|
|
|
|
|
|
|
'visitor_data': visitor_data,
|
|
|
|
|
|
|
|
'action': event['action'],
|
|
|
|
|
|
|
|
}, cls=DjangoJSONEncoder))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|