-
Notifications
You must be signed in to change notification settings - Fork 394
/
admin.py
36 lines (29 loc) · 1.26 KB
/
admin.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
""" Django notifications admin file """
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.http import HttpRequest
from django.utils.translation import gettext_lazy
from swapper import load_model
from notifications.querysets import NotificationQuerySet
Notification = load_model("notifications", "Notification")
@admin.register(Notification)
class NotificationAdmin(admin.ModelAdmin):
raw_id_fields = ("recipient",)
readonly_fields = ("action_object_url", "actor_object_url", "target_object_url")
list_display = ("recipient", "actor", "level", "target", "unread", "public")
list_filter = (
"level",
"unread",
"public",
"timestamp",
)
actions = ("mark_unread", "mark_read")
def get_queryset(self, request: HttpRequest):
qs = super().get_queryset(request)
return qs.prefetch_related("actor")
@admin.action(description=gettext_lazy("Mark selected notifications as unread"))
def mark_unread(self, request: HttpRequest, queryset: NotificationQuerySet):
queryset.update(unread=True)
@admin.action(description=gettext_lazy("Mark selected notifications as read"))
def mark_read(self, request: HttpRequest, queryset: NotificationQuerySet):
queryset.update(unread=False)