mirror of
https://github.com/django/django.git
synced 2025-10-25 06:36:07 +00:00
Fixed #34303 –- Allowed customizing admin site log entry list.
Added AdminSite.get_log_entries() as an override point and made this available to the template via each_context().
This commit is contained in:
@@ -336,6 +336,7 @@ class AdminSite:
|
||||
"available_apps": self.get_app_list(request),
|
||||
"is_popup": False,
|
||||
"is_nav_sidebar_enabled": self.enable_nav_sidebar,
|
||||
"log_entries": self.get_log_entries(request),
|
||||
}
|
||||
|
||||
def password_change(self, request, extra_context=None):
|
||||
@@ -588,6 +589,11 @@ class AdminSite:
|
||||
context,
|
||||
)
|
||||
|
||||
def get_log_entries(self, request):
|
||||
from django.contrib.admin.models import LogEntry
|
||||
|
||||
return LogEntry.objects.select_related("content_type", "user")
|
||||
|
||||
|
||||
class DefaultAdminSite(LazyObject):
|
||||
def _setup(self):
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from django import template
|
||||
from django.contrib.admin.models import LogEntry
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -12,16 +11,13 @@ class AdminLogNode(template.Node):
|
||||
return "<GetAdminLog Node>"
|
||||
|
||||
def render(self, context):
|
||||
if self.user is None:
|
||||
entries = LogEntry.objects.all()
|
||||
else:
|
||||
entries = context["log_entries"]
|
||||
if self.user is not None:
|
||||
user_id = self.user
|
||||
if not user_id.isdigit():
|
||||
user_id = context[self.user].pk
|
||||
entries = LogEntry.objects.filter(user__pk=user_id)
|
||||
context[self.varname] = entries.select_related("content_type", "user")[
|
||||
: int(self.limit)
|
||||
]
|
||||
entries = entries.filter(user__pk=user_id)
|
||||
context[self.varname] = entries[: int(self.limit)]
|
||||
return ""
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user