Files
thrilltrack-explorer/django-backend/apps/reports/admin.py

39 lines
1.3 KiB
Python

from django.contrib import admin
from unfold.admin import ModelAdmin
from .models import Report
@admin.register(Report)
class ReportAdmin(ModelAdmin):
list_display = ['id', 'entity_type', 'entity_id', 'report_type', 'status', 'reported_by', 'reviewed_by', 'created_at']
list_filter = ['status', 'report_type', 'entity_type', 'created_at']
search_fields = ['id', 'entity_id', 'description', 'resolution_notes', 'reported_by__email']
date_hierarchy = 'created_at'
ordering = ['-created_at']
readonly_fields = ['id', 'created_at', 'updated_at']
fieldsets = (
('Report Details', {
'fields': ('id', 'report_type', 'description', 'status')
}),
('Reported Entity', {
'fields': ('entity_type', 'entity_id')
}),
('Reporter Information', {
'fields': ('reported_by', 'created_at')
}),
('Moderation', {
'fields': ('reviewed_by', 'reviewed_at', 'resolution_notes'),
'classes': ('collapse',)
}),
('Tracking', {
'fields': ('updated_at',),
'classes': ('collapse',)
}),
)
def get_queryset(self, request):
"""Optimize queryset with select_related for foreign keys"""
qs = super().get_queryset(request)
return qs.select_related('reported_by', 'reviewed_by')