1
0
mirror of https://github.com/django/django.git synced 2025-10-25 22:56:12 +00:00

Fixed #34462 -- Made admin log actions in bulk.

This also deprecates ModelAdmin.log_deletion() and
LogEntryManager.log_action().
This commit is contained in:
Akash Kumar Sen
2023-06-12 08:50:55 +05:30
committed by Mariusz Felisiak
parent 45e0c5892f
commit 40b3975e7d
12 changed files with 374 additions and 70 deletions

View File

@@ -4,9 +4,11 @@ from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
from django.contrib.admin.views.main import IS_POPUP_VAR
from django.contrib.auth.models import Permission, User
from django.core import mail
from django.db import connection
from django.template.loader import render_to_string
from django.template.response import TemplateResponse
from django.test import TestCase, override_settings
from django.test.utils import CaptureQueriesContext
from django.urls import reverse
from .admin import SubscriberAdmin
@@ -74,8 +76,21 @@ class AdminActionsTest(TestCase):
self.assertContains(confirmation, "<li>Subscribers: 2</li>")
self.assertContains(confirmation, "<li>External subscribers: 1</li>")
self.assertContains(confirmation, ACTION_CHECKBOX_NAME, count=2)
self.client.post(
reverse("admin:admin_views_subscriber_changelist"), delete_confirmation_data
with CaptureQueriesContext(connection) as ctx:
self.client.post(
reverse("admin:admin_views_subscriber_changelist"),
delete_confirmation_data,
)
# Log entries are inserted in bulk.
self.assertEqual(
len(
[
q["sql"]
for q in ctx.captured_queries
if q["sql"].startswith("INSERT")
]
),
1,
)
self.assertEqual(Subscriber.objects.count(), 0)