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

1from django.contrib.auth.decorators import login_required 1a

2from django.shortcuts import get_object_or_404, redirect, render 1a

3 

4from .forms import MessageForm 1a

5from .models import Message 1a

6 

7 

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

16 

17 return render(request, template_name, {"form": form}) 1a

18 

19 

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 ) 

31 

32 return render(request, template_name, {"message": message}) 1a

33 

34 

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

39 

40 if request.method == "POST": 1a

41 message.delete() 1a

42 return redirect("message_list") 1a

43 

44 return render(request, template_name, {"message": message}) 1a

45 

46 

47@login_required 1a

48def message_list(request): 1a

49 template_name = "messages/message_list.html" 1a

50 messages = Message.published.all() 1a

51 

52 return render(request, template_name, {"messages": messages}) 1a

53 

54 

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

59 

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

65 

66 return render(request, template_name, {"form": form}) 1a