diff --git a/osinaweb/support/__pycache__/consumers.cpython-310.pyc b/osinaweb/support/__pycache__/consumers.cpython-310.pyc index 64d8868b..7e41e5f7 100644 Binary files a/osinaweb/support/__pycache__/consumers.cpython-310.pyc and b/osinaweb/support/__pycache__/consumers.cpython-310.pyc differ diff --git a/osinaweb/support/consumers.py b/osinaweb/support/consumers.py index 7adb07ee..1a3125df 100644 --- a/osinaweb/support/consumers.py +++ b/osinaweb/support/consumers.py @@ -10,6 +10,7 @@ from customercore.models import * import json from django.template.loader import render_to_string from asgiref.sync import async_to_sync + class TicketRoomConsumer(WebsocketConsumer): def connect(self): self.user = self.scope['user'] @@ -169,9 +170,17 @@ class TicketRoomConsumer(WebsocketConsumer): def modify_online_user(self): connections = TicketConnection.objects.filter(ticket=self.ticket, terminated_at__isnull=True) + connections_serial = [] + for connection in connections: + connection_data = { + 'first_name': connection.user.first_name, + 'last_name': connection.user.last_name, + } + connections_serial.append(connection_data) event = { 'type': 'user_connection_handler', - 'connections': connections, + 'user': self.user, + 'connections': connections_serial, } async_to_sync(self.channel_layer.group_send)( self.ticket_number, event @@ -180,6 +189,7 @@ class TicketRoomConsumer(WebsocketConsumer): def user_connection_handler(self, event): context = { 'connections': event['connections'], + 'user': event['user'] } html = render_to_string("details_templates/partials/ticket-online-users.html", context=context) self.send(text_data=json.dumps({ @@ -188,45 +198,6 @@ class TicketRoomConsumer(WebsocketConsumer): })) - -class NewTicketConsumer(WebsocketConsumer): - def connect(self): - self.user = self.scope['user'] - async_to_sync(self.channel_layer.group_add)( - "new_ticket_group", - self.channel_name - ) - self.accept() - - def disconnect(self, close_code): - async_to_sync(self.channel_layer.group_discard)( - "new_ticket_group", - self.channel_name - ) - - def new_ticket_event(self, event): - ticket_id = event['ticket_id'] - ticket = Ticket.objects.get(id=ticket_id) - is_ticketstaff_member = ( - hasattr(self.user, 'staffprofile') and - (self.user.staffprofile in ticket.get_all_ticket_staff() or self.user.is_superuser) - ) - is_ticket_customer = ( - hasattr(self.user, 'customerprofile') and - (self.user.customerprofile == ticket.customer)) - if is_ticketstaff_member or is_ticket_customer: - context = {'ticket': ticket, 'new': True} - if is_ticketstaff_member: - html = render_to_string("details_templates/partials/staff-ticket-display.html", context) - else: - html = render_to_string("details_templates/partials/customer-ticket-display.html", context) - self.send(text_data=json.dumps({ - 'event_type': 'new_ticket', - 'html': html, - 'ticket_id': ticket_id - })) - - class NewTicketUpdateConsumer(WebsocketConsumer): def connect(self): self.user = self.scope['user']