kopia lustrzana https://github.com/wagtail/wagtail
Add default next_url value in form submissions delete view
rodzic
4bfab460a4
commit
8217124799
|
@ -1263,16 +1263,30 @@ class TestDeleteFormSubmission(WagtailTestUtils, TestCase):
|
|||
self.form_page = Page.objects.get(url_path="/home/contact-us/")
|
||||
|
||||
def test_delete_submission_show_confirmation(self):
|
||||
delete_url = reverse(
|
||||
"wagtailforms:delete_submissions", args=(self.form_page.id,)
|
||||
)
|
||||
list_url = reverse("wagtailforms:list_submissions", args=(self.form_page.id,))
|
||||
|
||||
response = self.client.get(
|
||||
reverse("wagtailforms:delete_submissions", args=(self.form_page.id,))
|
||||
+ f"?selected-submissions={FormSubmission.objects.first().id}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
# Check show confirm page when HTTP method is GET
|
||||
self.assertTemplateUsed(response, "wagtailforms/confirm_delete.html")
|
||||
|
||||
# Check that the deletion has not happened with GET request
|
||||
self.assertEqual(FormSubmission.objects.count(), 2)
|
||||
|
||||
# The delete form should have a 'next' input that points back to the list page
|
||||
soup = self.get_soup(response.content)
|
||||
form = soup.select_one(f'form[action^="{delete_url}"]')
|
||||
self.assertIsNotNone(form)
|
||||
next_input = form.find("input", {"name": "next"})
|
||||
self.assertIsNotNone(next_input)
|
||||
self.assertEqual(next_input.get("value"), list_url)
|
||||
|
||||
def test_delete_submission_with_permissions(self):
|
||||
response = self.client.post(
|
||||
reverse("wagtailforms:delete_submissions", args=(self.form_page.id,))
|
||||
|
@ -1348,12 +1362,33 @@ class TestDeleteFormSubmission(WagtailTestUtils, TestCase):
|
|||
)
|
||||
|
||||
def test_delete_submission_with_next_url(self):
|
||||
submission_id = FormSubmission.objects.first().id
|
||||
delete_url = reverse(
|
||||
"wagtailforms:delete_submissions", args=(self.form_page.id,)
|
||||
)
|
||||
list_url = reverse("wagtailforms:list_submissions", args=(self.form_page.id,))
|
||||
next_url = list_url + "?p=2"
|
||||
|
||||
response = self.client.get(
|
||||
reverse("wagtailforms:delete_submissions", args=(self.form_page.id,))
|
||||
+ f"?selected-submissions={submission_id}&next={next_url}"
|
||||
)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# The delete form should have a 'next' input that points back to the list page
|
||||
# with the same pagination querystring
|
||||
soup = self.get_soup(response.content)
|
||||
form = soup.select_one(f'form[action^="{delete_url}"]')
|
||||
self.assertIsNotNone(form)
|
||||
next_input = form.find("input", {"name": "next"})
|
||||
self.assertIsNotNone(next_input)
|
||||
self.assertEqual(next_input.get("value"), next_url)
|
||||
|
||||
# Submitting the form should redirect to the next URL
|
||||
response = self.client.post(
|
||||
reverse("wagtailforms:delete_submissions", args=(self.form_page.id,)),
|
||||
{
|
||||
"selected-submissions": FormSubmission.objects.first().id,
|
||||
"selected-submissions": submission_id,
|
||||
"next": next_url,
|
||||
},
|
||||
)
|
||||
|
|
|
@ -88,7 +88,7 @@ class DeleteSubmissionsView(TemplateView):
|
|||
template_name = "wagtailforms/confirm_delete.html"
|
||||
page = None
|
||||
submissions = None
|
||||
success_url = "wagtailforms:list_submissions"
|
||||
success_url_name = "wagtailforms:list_submissions"
|
||||
|
||||
def get_queryset(self):
|
||||
"""Returns a queryset for the selected submissions"""
|
||||
|
@ -115,7 +115,7 @@ class DeleteSubmissionsView(TemplateView):
|
|||
next_url = get_valid_next_url_from_request(self.request)
|
||||
if next_url:
|
||||
return next_url
|
||||
return self.success_url
|
||||
return reverse(self.success_url_name, args=(self.page.id,))
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
"""Check permissions, set the page and submissions, handle delete"""
|
||||
|
@ -130,7 +130,7 @@ class DeleteSubmissionsView(TemplateView):
|
|||
|
||||
if self.request.method == "POST":
|
||||
self.handle_delete(self.submissions)
|
||||
return redirect(self.get_success_url(), page_id)
|
||||
return redirect(self.get_success_url())
|
||||
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
@ -144,9 +144,7 @@ class DeleteSubmissionsView(TemplateView):
|
|||
"submissions": self.submissions,
|
||||
}
|
||||
)
|
||||
next_url = get_valid_next_url_from_request(self.request)
|
||||
if next_url:
|
||||
context["next_url"] = next_url
|
||||
context["next_url"] = self.get_success_url()
|
||||
|
||||
return context
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue