main
emile 10 months ago
parent e820faba28
commit 004a0e9d6d

@ -198,6 +198,46 @@ 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): class NewTicketUpdateConsumer(WebsocketConsumer):
def connect(self): def connect(self):
self.user = self.scope['user'] self.user = self.scope['user']

Loading…
Cancel
Save