Coverage for message/views.py: 100.00%

41 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-13 16:05 -0700

1from django.contrib.auth.decorators import login_required 

2from django.shortcuts import get_object_or_404, redirect, render 

3 

4from .forms import MessageForm 

5from .models import Message 

6 

7 

8@login_required 

9def message_create(request): 

10 template_name = "messages/message_new.html" 1fc

11 form = MessageForm(request.POST or None) 1fc

12 if form.is_valid(): 1fc

13 form.instance.author = request.user 1c

14 form.save() 1c

15 return redirect("message_list") 1c

16 

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

18 

19 

20@login_required 

21def message_detail(request, year, month, day, message): 

22 template_name = "messages/message_detail.html" 1h

23 message = get_object_or_404( 1h

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}) 1h

33 

34 

35@login_required 

36def message_delete(request, pk): 

37 template_name = "messages/message_delete.html" 1dg

38 message = Message.objects.get(id=pk) 1dg

39 

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

41 message.delete() 1d

42 return redirect("message_list") 1d

43 

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

45 

46 

47@login_required 

48def message_list(request): 

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

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

51 

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

53 

54 

55@login_required 

56def message_update(request, pk): 

57 template_name = "messages/message_update.html" 1eb

58 message = Message.objects.get(id=pk) 1eb

59 

60 form = MessageForm(request.POST or None, instance=message) 1eb

61 if form.is_valid(): 1eb

62 form.instance.author = request.user 1b

63 form.save() 1b

64 return redirect("message_list") 1b

65 

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