]> git.menne-pb.de Git - pinpoint.git/commitdiff
Modifications on the admin-view to provide more insights
authorJörn Menne <j.menne@paderborn.de>
Tue, 14 Jan 2025 12:18:55 +0000 (13:18 +0100)
committerJörn Menne <j.menne@paderborn.de>
Tue, 14 Jan 2025 12:19:40 +0000 (13:19 +0100)
georeport/admin.py

index 47f335bbddfda1d26c7ecdc36d8e22d1d90d1e0a..76bec79ad1c5c5a9aa216ba85ac6efdd5867dee9 100644 (file)
@@ -2,11 +2,48 @@
 # GNU General Public License v3.0 (see LICSENE or https://www.gnu.org/license/gpl-3.0.md)
 
 
-from django.contrib import admin
+from django.contrib import admin, messages
+from django.utils.translation import ngettext
 
 # Register your models here.
 
 from .models import Category, Report
 
-admin.site.register(Report)
-admin.site.register(Category)
+
+@admin.register(Report)
+class ReportAdmin(admin.ModelAdmin):
+    exclude = None
+    readonly_fields = ["creation_time", "last_change"]
+    actions = ["make_public"]
+    list_display = ["title", "category__name", "state", "published"]
+
+    list_filter = ["state"]
+
+    @admin.action(description="Publish selected reports.")
+    def make_public(self, request, queryset):
+        updated = queryset.update(published=True)
+        self.message_user(
+            request,
+            ngettext(
+                "%d report was published",
+                "%d reports were published",
+                updated,
+            )
+            % updated,
+            messages.SUCCESS,
+        )
+
+
+class CategoryInline(admin.TabularInline):
+    model = Category
+    extra = 0
+    can_delete = False
+
+    def has_change_permission(self, request, obj=None):
+        return False
+
+
+@admin.register(Category)
+class CategoryAdmin(admin.ModelAdmin):
+    exlude = None
+    inlines = [CategoryInline]