django-auditlog/auditlog/admin.py

58 lines
1.6 KiB
Python
Raw Normal View History

from django.contrib import admin
from django.contrib.auth import get_user_model
2023-02-10 20:46:07 +00:00
from django.utils.translation import gettext_lazy as _
2020-12-06 20:36:46 +00:00
2023-02-10 20:46:07 +00:00
from auditlog.filters import CIDFilter, ResourceTypeFilter
2020-12-06 20:40:28 +00:00
from auditlog.mixins import LogEntryAdminMixin
from auditlog.models import LogEntry
2023-02-10 20:41:47 +00:00
user_model = get_user_model()
user_model_fields = [field.name for field in user_model._meta.get_fields()]
has_first_and_last_name_fields = (
"first_name" in user_model_fields and "last_name" in user_model_fields
)
@admin.register(LogEntry)
2016-09-02 19:02:42 +00:00
class LogEntryAdmin(admin.ModelAdmin, LogEntryAdminMixin):
list_select_related = ["content_type", "actor"]
2023-02-10 20:46:07 +00:00
list_display = [
"created",
"resource_url",
"action",
"msg_short",
"user_url",
"cid_url",
]
2020-12-06 20:29:24 +00:00
search_fields = [
"timestamp",
"object_repr",
"changes",
2023-02-10 20:41:47 +00:00
f"actor__{user_model.USERNAME_FIELD}",
2023-02-10 20:46:51 +00:00
] + (
["actor__first_name", "actor__last_name"]
if has_first_and_last_name_fields
else []
)
2023-02-10 20:46:07 +00:00
list_filter = ["action", ResourceTypeFilter, CIDFilter]
2020-12-06 20:29:24 +00:00
readonly_fields = ["created", "resource_url", "action", "user_url", "msg"]
2016-09-02 19:02:42 +00:00
fieldsets = [
2023-02-10 20:46:07 +00:00
(None, {"fields": ["created", "user_url", "resource_url", "cid"]}),
(_("Changes"), {"fields": ["action", "msg"]}),
2016-09-02 19:02:42 +00:00
]
def has_add_permission(self, request):
return False
2023-02-10 20:46:07 +00:00
def has_change_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
def get_queryset(self, request):
self.request = request
return super().get_queryset(request=request)