# coding=UTF-8 from django.views.decorators.http import require_http_methods from django.http import HttpResponse, HttpResponseRedirect from django.contrib.auth.decorators import login_required from django.shortcuts import render, get_object_or_404 from django.contrib.auth.models import User from django.urls import reverse from .forms import MessageForm from .models import Message # @login_required def get_number_unreaded_message(request): """ """ # user = User.objects.get(pk=userid) number_unreaded_message = Message.objects.filter(reader=request.user).count() return number_unreaded_message @login_required @require_http_methods(["GET"]) def get_messages(request, message_type="received"): """ """ if message_type == "received": message_list = Message.objects.filter(reader=request.user) elif message_type == "sent": message_list = Message.objects.filter(writer=request.user) else: message_list = None context = {"message_list": message_list, "message_type": message_type} return render(request, "message_list.html", context) @login_required @require_http_methods(["GET"]) def get_message_received(request): """ """ return get_messages(request, "received") @login_required @require_http_methods(["GET"]) def get_message_sent(request): """ """ return get_messages(request, "sent") @login_required @require_http_methods(["GET"]) def get_message_details(request, messageid): """ """ message = get_object_or_404(Message, pk=messageid) if not message.is_read and message.reader == request.user.id: message.is_read = True message.save() context = {"message": message, "type": None} return render(request, "message_details.html", context) @login_required @require_http_methods(["GET"]) def delete_message(request, messageid): """ """ try: Message.objects.get(pk=messageid).delete() except: return HttpResponse(409) return HttpResponse(200) @login_required @require_http_methods(["GET", "POST"]) def compose_message(request): """ """ if request.method == "POST": form = MessageForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("message_sent")) else: print("Form invalide") else: form = MessageForm() context = {"form": form, "writer": request.user.id} return render(request, "message_create.html", context)