diff --git a/ChatServiceApp/funcs.py b/ChatServiceApp/funcs.py index e57ad89..a4def9c 100644 --- a/ChatServiceApp/funcs.py +++ b/ChatServiceApp/funcs.py @@ -12,6 +12,47 @@ import json from datetime import datetime, time +def get_update_chat_html(data): + from AuthApp.models import User + + res_Dict = {} + msgs = [] + Dict = {} + context_Dict = {} + + last_message_modifiedDT = None + + required_beep = False + + try: + + if type(data) == str: + data = json.loads(data) + ticket = None + + tpl_name = 'blocks/profile/b_messages_container.html' + + if 'ticket_id' in data and data['ticket_id'] and data['ticket_id'] != 'null': + ticket = MsgGroup.objects.get(id=data['ticket_id']) + + sender = User.objects.get(id=data['sender']) + receiver = None + if 'receiver' in data and data['receiver']: + receiver = User.objects.get(id=data['receiver']) + + context_Dict.update({'cur_receiver': receiver}) + + res_Dict.update({ + 'required_beep': required_beep, + }) + return res_Dict + + except Exception as e: + msg = f'update_chat_ajax2 Error = {str(e)}' + return {'error': msg} + + + def update_chat(data): from AuthApp.models import User @@ -41,6 +82,11 @@ def update_chat(data): if 'receiver' in data and data['receiver']: receiver = User.objects.get(id=data['receiver']) + if data['sender'] == data['cur_user']: + context_Dict.update({'user': sender}) + else: + context_Dict.update({'user': receiver}) + context_Dict.update({'cur_receiver': receiver}) @@ -82,7 +128,7 @@ def update_chat(data): chat_html = render_to_string(tpl_name, context_Dict) res_Dict.update({'chat_html': chat_html}) required_beep = True - unreaded_msgs.update(status='seen') + # unreaded_msgs.update(status='seen') diff --git a/ChatServiceApp/websocket_views.py b/ChatServiceApp/websocket_views.py index b251e70..e203261 100644 --- a/ChatServiceApp/websocket_views.py +++ b/ChatServiceApp/websocket_views.py @@ -34,13 +34,14 @@ class ChatConsumer(WebsocketConsumer): receiver = data['receiver'] from .funcs import send_msg, update_chat + data.update({'cur_user': sender}) send_msg(data) Dict = update_chat(data) resDict = { 'type': 'update_chat', - # 'message': Dict, - # 'sender': resDict['sender'] + 'sender': sender, + 'receiver': receiver, } resDict.update(Dict) group_name = f'user_{sender}' @@ -49,15 +50,14 @@ class ChatConsumer(WebsocketConsumer): resDict ) - data['sender'] = receiver - data['receiver'] = sender + data.update({'cur_user': receiver}) Dict = update_chat(data) group_name = f'user_{receiver}' resDict = { 'type': 'update_chat', - # 'message': Dict, - # 'sender': resDict['sender'] + 'sender': receiver, + 'receiver': sender, } resDict.update(Dict) async_to_sync(self.channel_layer.group_send)( @@ -71,7 +71,7 @@ class ChatConsumer(WebsocketConsumer): self.send(text_data=json.dumps(data)) def update_chat(self, data): - print('ws update_chat') + print(f'ws update_chat {str(self.channel_layer.groups)}') self.send(text_data=json.dumps(data))