From dc6cdd2ba2873327b5eb86dab1a679ed506f4859 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Mon, 6 Jul 2015 15:09:55 +0100 Subject: [PATCH 1/2] Don't set redirect.site on create. Ref #1461 --- wagtail/wagtailredirects/tests.py | 1 + wagtail/wagtailredirects/views.py | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/wagtail/wagtailredirects/tests.py b/wagtail/wagtailredirects/tests.py index 96588973f..dcb88f35b 100644 --- a/wagtail/wagtailredirects/tests.py +++ b/wagtail/wagtailredirects/tests.py @@ -119,6 +119,7 @@ class TestRedirectsAddView(TestCase, WagtailTestUtils): redirects = models.Redirect.objects.filter(old_path='/test') self.assertEqual(redirects.count(), 1) self.assertEqual(redirects.first().redirect_link, 'http://www.test.com/') + self.assertEqual(redirects.first().site, None) def test_add_validation_error(self): response = self.post({ diff --git a/wagtail/wagtailredirects/views.py b/wagtail/wagtailredirects/views.py index 0db650c74..9497aa262 100644 --- a/wagtail/wagtailredirects/views.py +++ b/wagtail/wagtailredirects/views.py @@ -108,9 +108,7 @@ def add(request): if request.POST: form = form_class(request.POST, request.FILES) if form.is_valid(): - theredirect = form.save(commit=False) - theredirect.site = request.site - theredirect.save() + theredirect = form.save() messages.success(request, _("Redirect '{0}' added.").format(theredirect.title), buttons=[ messages.button(reverse('wagtailredirects_edit_redirect', args=(theredirect.id,)), _('Edit')) From 97e489e959875a1976e3a2cb593877e6de14b498 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Mon, 6 Jul 2015 15:17:58 +0100 Subject: [PATCH 2/2] Strip whitespace from redirect paths. Fixes #1350 --- wagtail/wagtailredirects/models.py | 3 +++ wagtail/wagtailredirects/tests.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/wagtail/wagtailredirects/models.py b/wagtail/wagtailredirects/models.py index 36cc6294a..d11f93160 100644 --- a/wagtail/wagtailredirects/models.py +++ b/wagtail/wagtailredirects/models.py @@ -41,6 +41,9 @@ class Redirect(models.Model): @staticmethod def normalise_path(url): + # Strip whitespace + url = url.strip() + # Parse url url_parsed = urlparse(url) diff --git a/wagtail/wagtailredirects/tests.py b/wagtail/wagtailredirects/tests.py index dcb88f35b..9fcba66fa 100644 --- a/wagtail/wagtailredirects/tests.py +++ b/wagtail/wagtailredirects/tests.py @@ -20,6 +20,8 @@ class TestRedirects(TestCase): self.assertEqual(path, normalise_path('Hello/world.html/?foo=Bar&Baz=quux2')) # Trailing slashes are ignored self.assertEqual(path, normalise_path('/Hello/world.html?foo=Bar&Baz=quux2#cool')) # Fragments are ignored self.assertEqual(path, normalise_path('/Hello/world.html?Baz=quux2&foo=Bar')) # Order of query string parameters are ignored + self.assertEqual(path, normalise_path(' /Hello/world.html?foo=Bar&Baz=quux2')) # Leading whitespace + self.assertEqual(path, normalise_path('/Hello/world.html?foo=Bar&Baz=quux2 ')) # Trailing whitespace # Test against different paths self.assertNotEqual(path, normalise_path('/hello/world.html?foo=Bar&Baz=quux2')) # 'hello' is lowercase