0.2.24
chat v2
This commit is contained in:
@@ -11,6 +11,6 @@ urlpatterns = [
|
|||||||
path('create_ticket/', create_ticket_ajax, name='create_ticket_ajax'),
|
path('create_ticket/', create_ticket_ajax, name='create_ticket_ajax'),
|
||||||
path('support_show_chat_by_ticket/', support_show_chat_by_ticket_ajax, name='support_show_chat_by_ticket_ajax'),
|
path('support_show_chat_by_ticket/', support_show_chat_by_ticket_ajax, name='support_show_chat_by_ticket_ajax'),
|
||||||
path('send_msg/', send_msg_ajax, name='send_msg_ajax'),
|
path('send_msg/', send_msg_ajax, name='send_msg_ajax'),
|
||||||
path('update_chat/', update_chat_ajax, name='update_chat_ajax'),
|
path('update_chat/', update_chat_ajax2, name='update_chat_ajax'),
|
||||||
path('show_chat_w_user/', show_chat_w_user_ajax, name='show_chat_w_user_ajax'),
|
path('show_chat_w_user/', show_chat_w_user_ajax, name='show_chat_w_user_ajax'),
|
||||||
]
|
]
|
||||||
@@ -27,9 +27,10 @@ def show_chat_w_user_ajax(request):
|
|||||||
data = json.loads(request.body)
|
data = json.loads(request.body)
|
||||||
Dict = get_chat_page_content_Dict(request, data['user_id'])
|
Dict = get_chat_page_content_Dict(request, data['user_id'])
|
||||||
|
|
||||||
|
|
||||||
tpl_name = 'blocks/profile/b_chats.html'
|
tpl_name = 'blocks/profile/b_chats.html'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
html = render_to_string(tpl_name, Dict, request=request)
|
html = render_to_string(tpl_name, Dict, request=request)
|
||||||
return JsonResponse({'html': html}, status=200)
|
return JsonResponse({'html': html}, status=200)
|
||||||
|
|
||||||
@@ -38,6 +39,95 @@ def show_chat_w_user_ajax(request):
|
|||||||
return JsonResponse({'error': msg}, status=400)
|
return JsonResponse({'error': msg}, status=400)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def update_chat_ajax2(request):
|
||||||
|
from AuthApp.models import User
|
||||||
|
|
||||||
|
if request.method != 'POST':
|
||||||
|
raise Http404
|
||||||
|
|
||||||
|
res_Dict = {}
|
||||||
|
msgs = []
|
||||||
|
Dict = {}
|
||||||
|
context_Dict = {}
|
||||||
|
|
||||||
|
last_message_modifiedDT = None
|
||||||
|
|
||||||
|
required_beep = False
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
data = json.loads(request.body)
|
||||||
|
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})
|
||||||
|
|
||||||
|
|
||||||
|
if not ticket:
|
||||||
|
|
||||||
|
# получаем правую панель с получателями
|
||||||
|
# получатели
|
||||||
|
receivers, unread_msgs_count = get_chat_receivers_for_user(request.user, receiver)
|
||||||
|
# собираем для сохранения в профиле
|
||||||
|
receivers_unread_msgs_count = sorted(
|
||||||
|
[{'id': item.id, 'unread_msgs_count': item.unread_msgs_count} for item in receivers],
|
||||||
|
key=lambda d: d['id'])
|
||||||
|
# забираем данные из профиля
|
||||||
|
saved_receivers_unread_msgs_count = request.user.user_profile.get_node_by_name(
|
||||||
|
'receivers_unread_msgs_count')
|
||||||
|
# если данных нет или данные поменялись
|
||||||
|
if saved_receivers_unread_msgs_count == None or receivers_unread_msgs_count != saved_receivers_unread_msgs_count:
|
||||||
|
# записываем данные в профиль
|
||||||
|
request.user.user_profile.add_node_to_json_data(
|
||||||
|
{'receivers_unread_msgs_count': receivers_unread_msgs_count}, save=True)
|
||||||
|
# разрешаем сигнал
|
||||||
|
required_beep = True
|
||||||
|
|
||||||
|
# формируем правую панель
|
||||||
|
context_Dict.update({'receivers': receivers})
|
||||||
|
users_list_html = render_to_string(
|
||||||
|
'blocks/profile/b_list_of_users_messenger.html', context_Dict, request=request)
|
||||||
|
res_Dict.update({
|
||||||
|
'users_list_html': users_list_html,
|
||||||
|
'unread_msgs_count': unread_msgs_count
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
if sender and receiver:
|
||||||
|
msgs = get_msgs_for_chat_w_users(sender, receiver)
|
||||||
|
unreaded_msgs = msgs.filter(status='sended')
|
||||||
|
if msgs and unreaded_msgs:
|
||||||
|
context_Dict.update({'messages': msgs})
|
||||||
|
chat_html = render_to_string(tpl_name, context_Dict, request=request)
|
||||||
|
res_Dict.update({'chat_html': chat_html})
|
||||||
|
required_beep = True
|
||||||
|
unreaded_msgs.update(status='seen')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
res_Dict.update({
|
||||||
|
'required_beep': required_beep,
|
||||||
|
})
|
||||||
|
return JsonResponse(res_Dict, status=200)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
msg = f'update_chat_ajax2 Error = {str(e)}'
|
||||||
|
return JsonResponse({'error': msg}, status=400)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def update_chat_ajax(request):
|
def update_chat_ajax(request):
|
||||||
from AuthApp.models import User
|
from AuthApp.models import User
|
||||||
|
|
||||||
@@ -111,7 +201,7 @@ def update_chat_ajax(request):
|
|||||||
})
|
})
|
||||||
|
|
||||||
# если есть получатель - получаем сообщения чата
|
# если есть получатель - получаем сообщения чата
|
||||||
if receiver == request.user:
|
if receiver:
|
||||||
msgs = get_msgs_for_chat_w_users(sender, receiver)
|
msgs = get_msgs_for_chat_w_users(sender, receiver)
|
||||||
unreaded_msgs = msgs.filter(status='sended')
|
unreaded_msgs = msgs.filter(status='sended')
|
||||||
if msgs and unreaded_msgs:
|
if msgs and unreaded_msgs:
|
||||||
@@ -135,7 +225,7 @@ def update_chat_ajax(request):
|
|||||||
return JsonResponse(res_Dict, status=200)
|
return JsonResponse(res_Dict, status=200)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
msg = f'send_msg_ajax Error = {str(e)}'
|
msg = f'update_chat_ajax Error = {str(e)}'
|
||||||
return JsonResponse({'error': msg}, status=400)
|
return JsonResponse({'error': msg}, status=400)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ function funcFocus(){
|
|||||||
var check_msg = null
|
var check_msg = null
|
||||||
var it = 0
|
var it = 0
|
||||||
|
|
||||||
var short_timeout = 5000
|
var short_timeout = 50000
|
||||||
var long_timeout = 60000
|
var long_timeout = 60000
|
||||||
|
|
||||||
// function initial_function (){
|
// function initial_function (){
|
||||||
|
|||||||
Reference in New Issue
Block a user