Skip to content

Commit

Permalink
Fix form action URL in user edit and delete views for custom user mod…
Browse files Browse the repository at this point in the history
…els (#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 83e7930
  • Loading branch information
laymonage committed May 13, 2024
1 parent a09bba6 commit 3689290
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
14 changes: 12 additions & 2 deletions wagtail/users/tests/test_admin_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,12 @@ def test_simple(self):
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)

Expand Down Expand Up @@ -990,9 +996,13 @@ def test_simple(self):
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(
Expand Down
2 changes: 2 additions & 0 deletions wagtail/users/views/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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()
Expand Down

0 comments on commit 3689290

Please sign in to comment.