28 lines
992 B
Python
Executable File
28 lines
992 B
Python
Executable File
# notifications_app/views.py
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.shortcuts import render, redirect, get_object_or_404
|
|
from .models import Notification
|
|
|
|
@login_required
|
|
def notification_list(request):
|
|
notifications = request.user.notifications.filter(is_archived=False)
|
|
return render(request, "notifications_list.html", {"notifications": notifications})
|
|
|
|
@login_required
|
|
def notification_mark_read(request, pk):
|
|
notification = get_object_or_404(Notification, pk=pk, recipient=request.user)
|
|
notification.is_read = True
|
|
notification.save()
|
|
return redirect("notification_list")
|
|
|
|
@login_required
|
|
def notification_delete(request, pk):
|
|
notification = get_object_or_404(Notification, pk=pk, recipient=request.user)
|
|
notification.soft_delete()
|
|
return redirect("notification_list")
|
|
|
|
@login_required
|
|
def notification_mark_all_read(request):
|
|
request.user.notifications.update(is_read=True)
|
|
return redirect("notification_list")
|