0.3.13
support chat v3
This commit is contained in:
@@ -14,6 +14,8 @@ from django.urls import reverse
|
||||
from .funcs import *
|
||||
import json
|
||||
from datetime import datetime, time
|
||||
from channels.layers import get_channel_layer
|
||||
from asgiref.sync import async_to_sync
|
||||
|
||||
|
||||
@login_required(login_url='/profile/login/')
|
||||
@@ -422,11 +424,34 @@ def create_ticket_ajax(request):
|
||||
ticket.enable = True
|
||||
ticket.save()
|
||||
|
||||
|
||||
# рассылаем всем менеджерам сообщение
|
||||
|
||||
Dict = {
|
||||
'ticket': ticket,
|
||||
'messages': get_messages_for_ticket(ticket)
|
||||
'tickets_wo_manager': get_tickets_wo_manager()
|
||||
}
|
||||
tickets_wo_manager_html = render_to_string('widgets/w_tickets_wo_manager.html', Dict, request=request)
|
||||
|
||||
group_name = 'support_managers'
|
||||
Dict = {
|
||||
'type': 'update_chat',
|
||||
'tickets_wo_manager_html': tickets_wo_manager_html
|
||||
}
|
||||
channel_layer = get_channel_layer()
|
||||
async_to_sync(channel_layer.group_send)(
|
||||
group_name,
|
||||
Dict
|
||||
)
|
||||
|
||||
|
||||
# ---------------------
|
||||
|
||||
msgs_for_ticket = get_messages_for_ticket(ticket)
|
||||
Dict = {
|
||||
'ticket': ticket,
|
||||
'messages': msgs_for_ticket
|
||||
}
|
||||
|
||||
html = render_to_string('blocks/profile/b_support_chat.html', Dict, request=request)
|
||||
|
||||
@@ -447,3 +472,13 @@ def create_ticket_ajax(request):
|
||||
html = render_to_string('blocks/profile/b_create_ticket.html', Dict, request=request)
|
||||
return JsonResponse({'html': html}, status=400)
|
||||
|
||||
|
||||
|
||||
def sendDeployments(owner, armies):
|
||||
type = "renderDeployments"
|
||||
message = owner + " has " + str(armies) + " to deploy"
|
||||
channel_layer = get_channel_layer()
|
||||
async_to_sync(channel_layer.group_send)(
|
||||
'render_updates_group',
|
||||
{'type': 'render', 'message': message}
|
||||
)
|
||||
@@ -18,8 +18,15 @@ class ChatConsumer(WebsocketConsumer):
|
||||
f'user_{self.scope["user"].id}',
|
||||
self.channel_name
|
||||
)
|
||||
print(f'self.room_group_name = {self.room_group_name}')
|
||||
print(f'self.channel_name = {self.channel_name}')
|
||||
print(f'created group user_{self.scope["user"].id}')
|
||||
|
||||
if self.scope['user'].is_staff:
|
||||
async_to_sync(self.channel_layer.group_add)(
|
||||
f'support_managers',
|
||||
self.channel_name
|
||||
)
|
||||
print(f'add user {self.scope["user"].id} to group support_managers')
|
||||
|
||||
self.accept()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user