0.3.18
support chat v3
This commit is contained in:
@@ -12,7 +12,8 @@ import json
|
|||||||
from datetime import datetime, time
|
from datetime import datetime, time
|
||||||
|
|
||||||
|
|
||||||
def get_update_chat_html(data):
|
|
||||||
|
def get_update_chat_Dict(data):
|
||||||
from AuthApp.models import User
|
from AuthApp.models import User
|
||||||
|
|
||||||
res_Dict = {}
|
res_Dict = {}
|
||||||
@@ -24,46 +25,7 @@ def get_update_chat_html(data):
|
|||||||
|
|
||||||
required_beep = False
|
required_beep = False
|
||||||
|
|
||||||
try:
|
required_full_support_chat_html = False
|
||||||
|
|
||||||
if type(data) == str:
|
|
||||||
data = json.loads(data)
|
|
||||||
ticket = None
|
|
||||||
|
|
||||||
tpl_name = 'blocks/profile/b_messages_container.html'
|
|
||||||
|
|
||||||
if 'ticket_id' in data and data['ticket_id'] and data['ticket_id'] != 'null':
|
|
||||||
ticket = MsgGroup.objects.get(id=data['ticket_id'])
|
|
||||||
|
|
||||||
sender = User.objects.get(id=data['sender'])
|
|
||||||
receiver = None
|
|
||||||
if 'receiver' in data and data['receiver']:
|
|
||||||
receiver = User.objects.get(id=data['receiver'])
|
|
||||||
|
|
||||||
context_Dict.update({'cur_receiver': receiver})
|
|
||||||
|
|
||||||
res_Dict.update({
|
|
||||||
'required_beep': required_beep,
|
|
||||||
})
|
|
||||||
return res_Dict
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
msg = f'update_chat_ajax2 Error = {str(e)}'
|
|
||||||
return {'error': msg}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def update_chat(data):
|
|
||||||
from AuthApp.models import User
|
|
||||||
|
|
||||||
res_Dict = {}
|
|
||||||
msgs = []
|
|
||||||
Dict = {}
|
|
||||||
context_Dict = {}
|
|
||||||
|
|
||||||
last_message_modifiedDT = None
|
|
||||||
|
|
||||||
required_beep = False
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
@@ -76,6 +38,7 @@ def update_chat(data):
|
|||||||
|
|
||||||
if 'ticket_id' in data and data['ticket_id'] and data['ticket_id'] != 'null':
|
if 'ticket_id' in data and data['ticket_id'] and data['ticket_id'] != 'null':
|
||||||
ticket = MsgGroup.objects.get(id=data['ticket_id'])
|
ticket = MsgGroup.objects.get(id=data['ticket_id'])
|
||||||
|
res_Dict.update({'ticket': ticket.id})
|
||||||
|
|
||||||
sender = User.objects.get(id=data['sender'])
|
sender = User.objects.get(id=data['sender'])
|
||||||
receiver = None
|
receiver = None
|
||||||
@@ -99,6 +62,7 @@ def update_chat(data):
|
|||||||
# получатели
|
# получатели
|
||||||
receivers, unread_msgs_count = get_chat_receivers_for_user(receiver)
|
receivers, unread_msgs_count = get_chat_receivers_for_user(receiver)
|
||||||
|
|
||||||
|
|
||||||
# формируем правую панель
|
# формируем правую панель
|
||||||
context_Dict.update({'receivers': receivers})
|
context_Dict.update({'receivers': receivers})
|
||||||
users_list_html = render_to_string(
|
users_list_html = render_to_string(
|
||||||
@@ -112,14 +76,21 @@ def update_chat(data):
|
|||||||
|
|
||||||
if ticket:
|
if ticket:
|
||||||
msgs = get_messages_for_ticket(ticket)
|
msgs = get_messages_for_ticket(ticket)
|
||||||
|
# если меньше 3 сообщений значит выведена не полная форма - требуется другой шаблон
|
||||||
|
if len(msgs) < 3:
|
||||||
|
tpl_name = 'blocks/profile/b_support_chat.html'
|
||||||
|
required_full_support_chat_html = True
|
||||||
|
|
||||||
context_Dict.update({'ticket': ticket})
|
context_Dict.update({'ticket': ticket})
|
||||||
res_Dict.update({'ticket': ticket})
|
|
||||||
if ticket.manager:
|
if ticket.manager:
|
||||||
res_Dict.update({'new_msg_allow': True})
|
context_Dict.update({'new_msg_allow': True})
|
||||||
|
|
||||||
context_Dict.update({'messages': msgs})
|
context_Dict.update({'messages': msgs})
|
||||||
chat_html = render_to_string(tpl_name, context_Dict)
|
html = render_to_string(tpl_name, context_Dict)
|
||||||
res_Dict.update({'chat_html': chat_html})
|
if required_full_support_chat_html:
|
||||||
|
res_Dict.update({'support_chat_html': html})
|
||||||
|
else:
|
||||||
|
res_Dict.update({'chat_html': html})
|
||||||
|
|
||||||
|
|
||||||
res_Dict.update({
|
res_Dict.update({
|
||||||
|
|||||||
@@ -40,13 +40,13 @@ class ChatConsumer(WebsocketConsumer):
|
|||||||
sender = data['sender']
|
sender = data['sender']
|
||||||
receiver = data['receiver']
|
receiver = data['receiver']
|
||||||
|
|
||||||
from .funcs import send_msg, update_chat
|
from .funcs import send_msg, get_update_chat_Dict
|
||||||
data.update({
|
data.update({
|
||||||
'cur_user': sender,
|
'cur_user': sender,
|
||||||
'required_beep': False,
|
'required_beep': False,
|
||||||
})
|
})
|
||||||
send_msg(data)
|
send_msg(data)
|
||||||
Dict = update_chat(data)
|
Dict = get_update_chat_Dict(data)
|
||||||
|
|
||||||
group_name = f'user_{sender}'
|
group_name = f'user_{sender}'
|
||||||
resDict = {
|
resDict = {
|
||||||
@@ -68,10 +68,15 @@ class ChatConsumer(WebsocketConsumer):
|
|||||||
'cur_user': receiver,
|
'cur_user': receiver,
|
||||||
'required_beep': True,
|
'required_beep': True,
|
||||||
})
|
})
|
||||||
Dict = update_chat(data)
|
Dict = get_update_chat_Dict(data)
|
||||||
|
|
||||||
|
if 'support_chat_html' in Dict:
|
||||||
|
msg_type = 'update_support_chat'
|
||||||
|
else:
|
||||||
|
msg_type = 'update_chat'
|
||||||
|
|
||||||
resDict = {
|
resDict = {
|
||||||
'type': 'update_chat',
|
'type': msg_type,
|
||||||
'sender': receiver,
|
'sender': receiver,
|
||||||
'receiver': sender,
|
'receiver': sender,
|
||||||
'group_name': group_name,
|
'group_name': group_name,
|
||||||
@@ -87,6 +92,11 @@ class ChatConsumer(WebsocketConsumer):
|
|||||||
|
|
||||||
self.send(text_data=json.dumps(data))
|
self.send(text_data=json.dumps(data))
|
||||||
|
|
||||||
|
def update_support_chat(self, data):
|
||||||
|
print(f'ws update_support_chat {data["group_name"]}')
|
||||||
|
|
||||||
|
self.send(text_data=json.dumps(data))
|
||||||
|
|
||||||
def update_chat(self, data):
|
def update_chat(self, data):
|
||||||
print(f'ws update_chat {data["group_name"]}')
|
print(f'ws update_chat {data["group_name"]}')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user