summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorJacob Rief <jacob.rief@gmail.com>2023-02-08 18:37:32 +0100
committerGitHub <noreply@github.com>2023-02-08 18:37:32 +0100
commit473283d2414fa4bbf1e38d663fe4a58f49bf72b9 (patch)
tree63e9f30aff3a6b95e47d3e737750e863644945e0 /django
parent1964e4367f293336b47e30af6e10a5eca5fdfb35 (diff)
downloaddjango-473283d2414fa4bbf1e38d663fe4a58f49bf72b9.tar.gz
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().
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/sites.py6
-rw-r--r--django/contrib/admin/templatetags/log.py12
2 files changed, 10 insertions, 8 deletions
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py
index 34477900f1..61be31d890 100644
--- a/django/contrib/admin/sites.py
+++ b/django/contrib/admin/sites.py
@@ -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):
diff --git a/django/contrib/admin/templatetags/log.py b/django/contrib/admin/templatetags/log.py
index 098aa640d5..00cd40ff8a 100644
--- a/django/contrib/admin/templatetags/log.py
+++ b/django/contrib/admin/templatetags/log.py
@@ -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 ""