From de996c6ae6a8172bda0cdc4b79e4e5a909fdd479 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Pasquier <contact@jbpasquier.eu>
Date: Fri, 26 Mar 2021 14:24:35 +0100
Subject: [PATCH] feature: QOL improvement on django admin

---
 djangoldp_notification/admin.py | 36 +++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 djangoldp_notification/admin.py

diff --git a/djangoldp_notification/admin.py b/djangoldp_notification/admin.py
new file mode 100644
index 0000000..034cfc3
--- /dev/null
+++ b/djangoldp_notification/admin.py
@@ -0,0 +1,36 @@
+from django.contrib import admin
+from djangoldp.admin import DjangoLDPAdmin
+from djangoldp.models import Model
+from .models import Notification, NotificationSetting, Subscription
+
+
+class NotificationAdmin(DjangoLDPAdmin):
+    list_display = ('urlid', 'user', 'author', 'type', 'object', 'unread')
+    exclude = ('urlid', 'is_backlink', 'allow_create_backlink', 'user')
+    search_fields = ['urlid', 'user__urlid', 'author', 'object', 'type', 'summary']
+    ordering = ['urlid']
+
+    def get_queryset(self, request):
+        # Hide distant notification
+        queryset = super(NotificationAdmin, self).get_queryset(request)
+        internal_ids = [x.pk for x in queryset if not Model.is_external(x)]
+        return queryset.filter(pk__in=internal_ids)
+
+
+class SubscriptionAdmin(DjangoLDPAdmin):
+    list_display = ('urlid', 'object', 'inbox', 'field')
+    exclude = ('urlid', 'is_backlink', 'allow_create_backlink')
+    search_fields = ['urlid', 'object', 'inbox', 'field']
+    ordering = ['urlid']
+
+
+class NotificationSettingAdmin(DjangoLDPAdmin):
+    list_display = ('urlid', 'user', 'receiveMail')
+    exclude = ('urlid', 'is_backlink', 'allow_create_backlink')
+    search_fields = ['urlid', 'user', 'receiveMail']
+    ordering = ['urlid']
+
+
+admin.site.register(Notification, NotificationAdmin)
+admin.site.register(Subscription, SubscriptionAdmin)
+admin.site.register(NotificationSetting, NotificationSettingAdmin)
-- 
GitLab