From b599ac6fa378d335f91110e360e53f5f509d0b56 Mon Sep 17 00:00:00 2001 From: Artur Borecki Date: Wed, 18 Mar 2026 10:22:58 +0100 Subject: [PATCH] feat(home/views.py): add chat views --- home/views.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 home/views.py diff --git a/home/views.py b/home/views.py new file mode 100644 index 0000000..ac41e30 --- /dev/null +++ b/home/views.py @@ -0,0 +1,44 @@ +from django.contrib.auth.decorators import login_required +from django.contrib.auth.models import User +from django.shortcuts import redirect, render + +from home.models import ChatMessage + + +@login_required +def admin_chat_dashboard(request): + chats = ChatMessage.get_all_user_senders() + return render(request, "chat/admin/admin_chat_dashboard.html", {"chats": chats}) + + +@login_required +def admin_chat(request, user_id): + chat_user = User.objects.filter(id=user_id, is_staff=False).first() + print(chat_user) + chat_messages = ChatMessage.get_support_chat(chat_user) + return render( + request, + "chat/admin/admin_chat.html", + {"chat_user": chat_user, "chat_messages": chat_messages}, + ) + + +@login_required +def user_chat(request): + if request.user.is_staff: + return redirect("admin_chat_dashboard") + chat_messages = ChatMessage.get_support_chat(request.user) + return render(request, "chat/user_chat.html", {"chat_messages": chat_messages}) + + +@login_required +def user_chat_send(request, user_id): + if request.method == "POST": + content = request.POST.get("content") + content = content.strip() if content else "" + if content: + user = User.objects.filter(id=user_id).first() + ChatMessage.objects.create(user=user, sender=request.user, content=content) + if request.user.is_staff: + return redirect("admin_chat", user_id=user_id) + return redirect("user_chat")