diff --git a/osinaweb/support/__pycache__/consumers.cpython-310.pyc b/osinaweb/support/__pycache__/consumers.cpython-310.pyc index 8c881091..d303915d 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 69dcb96b..71ab0ec1 100644 --- a/osinaweb/support/consumers.py +++ b/osinaweb/support/consumers.py @@ -19,6 +19,20 @@ class TicketRoomConsumer(WebsocketConsumer): self.ticket = get_object_or_404(Ticket, id=self.ticket_id) self.ticket_number = self.ticket.ticket_number + existing_connection = TicketConnection.objects.filter(ticket=self.ticket, user=self.user, terminated_at__isnull=True).delete() + TicketConnection.objects.create( + ticket=self.ticket, + user=self.user, + date=datetime.now() + ) + staff_profile = StaffProfile.objects.filter(user=self.user).first() + if staff_profile: + if not TicketStaff.objects.filter(staff=staff_profile, ticket=self.ticket).exists(): + TicketStaff.objects.create( + staff=staff_profile, + ticket=self.ticket, + date_added=datetime.now() + ) async_to_sync(self.channel_layer.group_add)( self.ticket_number, self.channel_name @@ -156,11 +170,9 @@ class TicketRoomConsumer(WebsocketConsumer): })) def modify_online_user(self): - connections = TicketConnection.objects.filter(ticket=self.ticket, terminated_at__isnull=True) event = { 'type': 'user_connection_handler', 'user': self.user, - 'connections': connections, } async_to_sync(self.channel_layer.group_send)( self.ticket_number, event @@ -168,7 +180,6 @@ 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)