From 36892908b61191d168992a6c5d6e8aaf4c469b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?sag=E2=80=8Be?= Date: Mon, 13 May 2024 18:47:12 +0100 Subject: [PATCH] Fix form action URL in user edit and delete views for custom user models (#11951) * Add test for the form action URL in the user edit and delete views * Reinstate context_object_name in users EditView and DeleteView Mistakenly removed in 83e79301a945267da4c0aff4c8dff9228992c658 --- wagtail/users/tests/test_admin_views.py | 14 ++++++++++++-- wagtail/users/views/users.py | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/wagtail/users/tests/test_admin_views.py b/wagtail/users/tests/test_admin_views.py index f088c619f1..d8a9eb1239 100644 --- a/wagtail/users/tests/test_admin_views.py +++ b/wagtail/users/tests/test_admin_views.py @@ -782,6 +782,12 @@ class TestUserDeleteView(AdminTemplateTestUtils, WagtailTestUtils, TestCase): self.assertTemplateUsed(response, "wagtailusers/users/confirm_delete.html") self.assertBreadcrumbsNotRendered(response.content) + # Should render the form with the correct action URL + soup = self.get_soup(response.content) + delete_url = reverse("wagtailusers_users:delete", args=(self.test_user.pk,)) + form_action = soup.select_one("form").attrs["action"] + self.assertEqual(form_action, delete_url) + def test_delete(self): response = self.post(follow=True) @@ -990,9 +996,13 @@ class TestUserEditView(AdminTemplateTestUtils, WagtailTestUtils, TestCase): history_link = header.find("a", attrs={"href": history_url}) self.assertIsNotNone(history_link) + # Should render the form with the correct action URL + edit_url = reverse("wagtailusers_users:edit", args=(self.test_user.pk,)) + form_action = soup.select_one("form").attrs["action"] + self.assertEqual(form_action, edit_url) + url_finder = AdminURLFinder(self.current_user) - expected_url = f"/admin/users/edit/{self.test_user.pk}/" - self.assertEqual(url_finder.get_edit_url(self.test_user), expected_url) + self.assertEqual(url_finder.get_edit_url(self.test_user), edit_url) def test_legacy_url_redirect(self): with self.assertWarnsMessage( diff --git a/wagtail/users/views/users.py b/wagtail/users/views/users.py index 87b6125600..53c266903b 100644 --- a/wagtail/users/views/users.py +++ b/wagtail/users/views/users.py @@ -286,6 +286,7 @@ class Edit(EditView): success_message = gettext_lazy("User '%(object)s' updated.") error_message = gettext_lazy("The user could not be saved due to errors.") + context_object_name = "user" def setup(self, request, *args, **kwargs): super().setup(request, *args, **kwargs) @@ -339,6 +340,7 @@ class Delete(DeleteView): page_title = gettext_lazy("Delete user") success_message = gettext_lazy("User '%(object)s' deleted.") + context_object_name = "user" def dispatch(self, request, *args, **kwargs): self.object = self.get_object()