0.3.13
support chat v3
This commit is contained in:
@@ -14,6 +14,8 @@ from django.urls import reverse
|
|||||||
from .funcs import *
|
from .funcs import *
|
||||||
import json
|
import json
|
||||||
from datetime import datetime, time
|
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/')
|
@login_required(login_url='/profile/login/')
|
||||||
@@ -422,11 +424,34 @@ def create_ticket_ajax(request):
|
|||||||
ticket.enable = True
|
ticket.enable = True
|
||||||
ticket.save()
|
ticket.save()
|
||||||
|
|
||||||
|
|
||||||
|
# рассылаем всем менеджерам сообщение
|
||||||
|
|
||||||
Dict = {
|
Dict = {
|
||||||
'ticket': ticket,
|
'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)
|
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)
|
html = render_to_string('blocks/profile/b_create_ticket.html', Dict, request=request)
|
||||||
return JsonResponse({'html': html}, status=400)
|
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}',
|
f'user_{self.scope["user"].id}',
|
||||||
self.channel_name
|
self.channel_name
|
||||||
)
|
)
|
||||||
print(f'self.room_group_name = {self.room_group_name}')
|
print(f'created group user_{self.scope["user"].id}')
|
||||||
print(f'self.channel_name = {self.channel_name}')
|
|
||||||
|
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()
|
self.accept()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
<div class="list_unlinked_tickets">
|
<div class="list_unlinked_tickets">
|
||||||
{% include "widgets/tickets_wo_manager.html" %}
|
{% include "widgets/w_tickets_wo_manager.html" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="list_linked_tickets">
|
<div class="list_linked_tickets">
|
||||||
{% include "widgets/tickets_w_manager.html" %}
|
{% include "widgets/w_tickets_w_manager.html" %}
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user