support chat v3
This commit is contained in:
SDE
2023-08-15 16:05:41 +03:00
parent e9d4d71c9d
commit 9d0998fb2b
7 changed files with 211 additions and 115 deletions

View File

@@ -231,112 +231,114 @@ def update_chat_ajax(request):
return JsonResponse({'error': msg}, status=400)
@login_required(login_url='/profile/login/')
def send_msg_ajax(request):
from AuthApp.models import User
if request.method != 'POST':
raise Http404
res_Dict = {}
msg = None
try:
data = json.loads(request.body)
ticket = None
tpl_name = 'blocks/profile/b_messages_container.html'
if data['text']:
if 'ticket_id' in data:
ticket = MsgGroup.objects.get(id=data['ticket_id'])
sender = User.objects.get(id=data['sender'])
receiver = User.objects.get(id=data['receiver'])
msg_create_kwargs = {}
# если только что манагер присоединился к тикету
if ticket:
if not ticket.manager:
if sender.is_staff:
ticket.manager = sender
else:
ticket.manager = receiver
ticket.save()
kwargs = {
'sender': ticket.owner,
'receiver': ticket.manager,
'text': ticket.text,
}
kwargs.update({'group': ticket})
msg = Message.objects.create(**kwargs)
Message.objects.filter(id=msg.id).update(modifiedDT=ticket.createDT, createDT=ticket.createDT)
res_Dict.update({
'ticket': ticket,
# 'cur_receiver': receiver,
# 'messages': get_messages_for_ticket(ticket),
# 'text': data['text'],
# 'modifiedDT': msg.modifiedDT
})
msg_create_kwargs.update({
'group': ticket,
})
res_Dict.update(get_ticketsDict_for_staff(request.user))
# if not msg:
msg_create_kwargs.update({
'sender': sender,
'receiver': receiver,
'text': data['text']
})
session_data = {
'for_save_to_session':{
'user_alerts':{
'new_message': True
}
}
}
receiver.user_profile.add_node_to_json_data(session_data, save=True)
msg = Message.objects.create(**msg_create_kwargs)
if ticket:
msgs = get_messages_for_ticket(ticket)
else:
msgs = get_msgs_for_chat_w_users(sender, receiver)
receivers, unread_msgs_count = get_chat_receivers_for_user(request.user)
res_Dict.update({
'messages': msgs,
'cur_receiver': receiver,
'receivers': receivers,
'text': data['text'],
'modifiedDT': msgs[0].modifiedDT
})
html = render_to_string(tpl_name, res_Dict, request=request)
return JsonResponse({'html': html}, status=200)
except Exception as e:
msg = f'send_msg_ajax Error = {str(e)}'
return JsonResponse({'error': msg}, status=400)
# @login_required(login_url='/profile/login/')
# def send_msg_ajax(request):
# from AuthApp.models import User
#
# if request.method != 'POST':
# raise Http404
#
# res_Dict = {}
# msg = None
#
# try:
#
# data = json.loads(request.body)
# ticket = None
#
# tpl_name = 'blocks/profile/b_messages_container.html'
#
# if data['text']:
#
#
# if 'ticket_id' in data:
# ticket = MsgGroup.objects.get(id=data['ticket_id'])
#
# sender = User.objects.get(id=data['sender'])
# receiver = User.objects.get(id=data['receiver'])
#
# msg_create_kwargs = {}
#
# # если только что манагер присоединился к тикету
# if ticket:
# if not ticket.manager:
# if sender.is_staff:
# ticket.manager = sender
# else:
# ticket.manager = receiver
#
# ticket.save()
#
# kwargs = {
# 'sender': ticket.owner,
# 'receiver': ticket.manager,
# 'text': ticket.text,
# }
#
# kwargs.update({'group': ticket})
#
# msg = Message.objects.create(**kwargs)
# Message.objects.filter(id=msg.id).update(modifiedDT=ticket.createDT, createDT=ticket.createDT)
#
# # if
#
# res_Dict.update({
# 'ticket': ticket,
# # 'cur_receiver': receiver,
# # 'messages': get_messages_for_ticket(ticket),
# # 'text': data['text'],
# # 'modifiedDT': msg.modifiedDT
# })
#
# msg_create_kwargs.update({
# 'group': ticket,
# })
#
# res_Dict.update(get_ticketsDict_for_staff(request.user))
#
#
# # if not msg:
# msg_create_kwargs.update({
# 'sender': sender,
# 'receiver': receiver,
# 'text': data['text']
# })
#
# session_data = {
# 'for_save_to_session':{
# 'user_alerts':{
# 'new_message': True
# }
# }
# }
#
# receiver.user_profile.add_node_to_json_data(session_data, save=True)
#
# msg = Message.objects.create(**msg_create_kwargs)
#
# if ticket:
# msgs = get_messages_for_ticket(ticket)
# else:
# msgs = get_msgs_for_chat_w_users(sender, receiver)
#
# receivers, unread_msgs_count = get_chat_receivers_for_user(request.user)
#
#
# res_Dict.update({
# 'messages': msgs,
# 'cur_receiver': receiver,
# 'receivers': receivers,
# 'text': data['text'],
# 'modifiedDT': msgs[0].modifiedDT
# })
#
#
# html = render_to_string(tpl_name, res_Dict, request=request)
# return JsonResponse({'html': html}, status=200)
#
# except Exception as e:
# msg = f'send_msg_ajax Error = {str(e)}'
# return JsonResponse({'error': msg}, status=400)
@@ -366,6 +368,8 @@ def support_show_chat_by_ticket_ajax(request):
# if len(msgs) > 1:
new_msg_allow = True
# msgs.filter(receiver=cur_receiver).update(status='seen')
Dict = {
'ticket': ticket,
'messages': msgs,