From 62c7694c50df111c69bb0d732e3726d8fb5cb460 Mon Sep 17 00:00:00 2001 From: SDE Date: Tue, 15 Aug 2023 16:23:16 +0300 Subject: [PATCH] 0.3.21 support chat v3 --- ChatServiceApp/websocket_views.py | 41 +++++++++++++++++-------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/ChatServiceApp/websocket_views.py b/ChatServiceApp/websocket_views.py index 632010f..b8b826b 100644 --- a/ChatServiceApp/websocket_views.py +++ b/ChatServiceApp/websocket_views.py @@ -5,11 +5,11 @@ from asgiref.sync import async_to_sync, sync_to_async from channels.layers import get_channel_layer from django.template.loader import render_to_string -def get_tickets_wo_manager_html(ticket, user_id, data): +def get_tickets_wo_manager_html(ticket, user, data): from .funcs import get_tickets_wo_manager # если не менеджер - возвращаем None - if ticket.manager.id != user_id: + if not ticket or ticket.manager.id != user.id: return None Dict = { @@ -21,16 +21,16 @@ def get_tickets_wo_manager_html(ticket, user_id, data): return tickets_wo_manager_html -def get_tickets_w_manager_html(ticket, user_id, data): - from .funcs import get_tickets_w_manager +def get_tickets_w_manager_html(ticket, user, data): + from .funcs import get_tickets_for_manager # если не менеджер - возвращаем None - if ticket.manager.id != user_id: + if not ticket or ticket.manager.id != user.id: return None Dict = { 'ticket': ticket, - 'tickets_w_manager': get_tickets_w_manager() + 'tickets_w_manager': get_tickets_for_manager(user) } tickets_w_manager_html = render_to_string('widgets/w_tickets_wo_manager.html', Dict) @@ -76,7 +76,8 @@ class ChatConsumer(WebsocketConsumer): sender = data['sender'] receiver = data['receiver'] - + sender_obj = User.objects.get(id=sender) + receiver_obj = User.objects.get(id=receiver) @@ -110,13 +111,14 @@ class ChatConsumer(WebsocketConsumer): } - tickets_wo_manager_html = get_tickets_wo_manager_html(ticket, sender, data) - if tickets_wo_manager_html: - resDict.update({'tickets_wo_manager_html': tickets_wo_manager_html}) + if ticket: + tickets_wo_manager_html = get_tickets_wo_manager_html(ticket, sender_obj, data) + if tickets_wo_manager_html: + resDict.update({'tickets_wo_manager_html': tickets_wo_manager_html}) - tickets_w_manager_html = get_tickets_w_manager_html(ticket, sender, data) - if tickets_w_manager_html: - resDict.update({'tickets_w_manager_html': tickets_w_manager_html}) + tickets_w_manager_html = get_tickets_w_manager_html(ticket, sender_obj, data) + if tickets_w_manager_html: + resDict.update({'tickets_w_manager_html': tickets_w_manager_html}) resDict.update(Dict) @@ -145,13 +147,14 @@ class ChatConsumer(WebsocketConsumer): 'group_name': group_name, } - tickets_wo_manager_html = get_tickets_wo_manager_html(ticket, receiver, data) - if tickets_wo_manager_html: - resDict.update({'tickets_wo_manager_html': tickets_wo_manager_html}) + if ticket: + tickets_wo_manager_html = get_tickets_wo_manager_html(ticket, receiver_obj, data) + if tickets_wo_manager_html: + resDict.update({'tickets_wo_manager_html': tickets_wo_manager_html}) - tickets_w_manager_html = get_tickets_w_manager_html(ticket, sender, data) - if tickets_w_manager_html: - resDict.update({'tickets_w_manager_html': tickets_w_manager_html}) + tickets_w_manager_html = get_tickets_w_manager_html(ticket, receiver_obj, data) + if tickets_w_manager_html: + resDict.update({'tickets_w_manager_html': tickets_w_manager_html}) resDict.update(Dict) async_to_sync(self.channel_layer.group_send)(