mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-03-16 22:20:26 +00:00
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
from django.contrib import admin
|
|
from django.contrib.auth import get_user_model
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from auditlog.filters import CIDFilter, ResourceTypeFilter
|
|
from auditlog.mixins import LogEntryAdminMixin
|
|
from auditlog.models import LogEntry
|
|
|
|
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)
|
|
class LogEntryAdmin(admin.ModelAdmin, LogEntryAdminMixin):
|
|
list_select_related = ["content_type", "actor"]
|
|
list_display = [
|
|
"created",
|
|
"resource_url",
|
|
"action",
|
|
"msg_short",
|
|
"user_url",
|
|
"cid_url",
|
|
]
|
|
search_fields = [
|
|
"timestamp",
|
|
"object_repr",
|
|
"changes",
|
|
f"actor__{user_model.USERNAME_FIELD}",
|
|
] + (
|
|
["actor__first_name", "actor__last_name"]
|
|
if has_first_and_last_name_fields
|
|
else []
|
|
)
|
|
list_filter = ["action", ResourceTypeFilter, CIDFilter]
|
|
readonly_fields = ["created", "resource_url", "action", "user_url", "msg"]
|
|
fieldsets = [
|
|
(None, {"fields": ["created", "user_url", "resource_url", "cid"]}),
|
|
(_("Changes"), {"fields": ["action", "msg"]}),
|
|
]
|
|
|
|
def has_add_permission(self, request):
|
|
return False
|
|
|
|
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)
|