diff options
author | Jacob Rief <jacob.rief@gmail.com> | 2023-02-08 18:37:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-08 18:37:32 +0100 |
commit | 473283d2414fa4bbf1e38d663fe4a58f49bf72b9 (patch) | |
tree | 63e9f30aff3a6b95e47d3e737750e863644945e0 /django | |
parent | 1964e4367f293336b47e30af6e10a5eca5fdfb35 (diff) | |
download | django-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.py | 6 | ||||
-rw-r--r-- | django/contrib/admin/templatetags/log.py | 12 |
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 "" |