def new(request): if request.method == 'POST': from_user = request.user to_user_username = request.POST.get('to') try: to_user = User.objects.get(username=to_user_username) except Exception: try: to_user_username = to_user_username[ to_user_username.rfind('(') + 1:len(to_user_username) - 1] to_user = User.objects.get(username=to_user_username) except Exception: return redirect('/messages/new/') message = request.POST.get('message') if len(message.strip()) == 0: return redirect('/messages/new/') if from_user != to_user: Message.send_message(from_user, to_user, message) return redirect('/messages/{0}/'.format(to_user_username)) else: conversations = Message.get_conversations(user=request.user) return render(request, 'messenger/new.html', {'conversations': conversations})
def send(request): if request.method == 'POST': from_user = request.user to_user_username = request.POST.get('to') to_user = User.objects.get(username=to_user_username) message = request.POST.get('message') if len(message.strip()) == 0: return HttpResponse() if from_user != to_user: msg = Message.send_message(from_user, to_user, message) return render(request, 'messenger/includes/partial_message.html', {'message': msg}) return HttpResponse() else: return HttpResponseBadRequest()
def messages(request, username): conversations = Message.get_conversations(user=request.user) active_conversation = username messages = Message.objects.filter(user=request.user, conversation__username=username) messages.update(is_read=True) for conversation in conversations: if conversation['user'].username == username: conversation['unread'] = 0 return render( request, 'messenger/inbox.html', { 'messages': messages, 'conversations': conversations, 'active': active_conversation })