Coverage for message/views.py: 100.00%
41 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-30 09:06 -0700
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-30 09:06 -0700
1from django.contrib.auth.decorators import login_required 1a
2from django.shortcuts import get_object_or_404, redirect, render 1a
4from .forms import MessageForm 1a
5from .models import Message 1a
8@login_required 1a
9def message_create(request): 1a
10 template_name = "messages/message_new.html" 1a
11 form = MessageForm(request.POST or None) 1a
12 if form.is_valid(): 1a
13 form.instance.author = request.user 1a
14 form.save() 1a
15 return redirect("message_list") 1a
17 return render(request, template_name, {"form": form}) 1a
20@login_required 1a
21def message_detail(request, year, month, day, message): 1a
22 template_name = "messages/message_detail.html" 1a
23 message = get_object_or_404( 1a
24 Message,
25 status=Message.Status.PUBLISHED,
26 slug=message,
27 publish__year=year,
28 publish__month=month,
29 publish__day=day,
30 )
32 return render(request, template_name, {"message": message}) 1a
35@login_required 1a
36def message_delete(request, pk): 1a
37 template_name = "messages/message_delete.html" 1a
38 message = Message.objects.get(id=pk) 1a
40 if request.method == "POST": 1a
41 message.delete() 1a
42 return redirect("message_list") 1a
44 return render(request, template_name, {"message": message}) 1a
47@login_required 1a
48def message_list(request): 1a
49 template_name = "messages/message_list.html" 1a
50 messages = Message.published.all() 1a
52 return render(request, template_name, {"messages": messages}) 1a
55@login_required 1a
56def message_update(request, pk): 1a
57 template_name = "messages/message_update.html" 1a
58 message = Message.objects.get(id=pk) 1a
60 form = MessageForm(request.POST or None, instance=message) 1a
61 if form.is_valid(): 1a
62 form.instance.author = request.user 1a
63 form.save() 1a
64 return redirect("message_list") 1a
66 return render(request, template_name, {"form": form}) 1a