From 6f021ea1a645781862df8b137b3a70b0aecd006c Mon Sep 17 00:00:00 2001 From: Virginia Dooley Date: Mon, 1 May 2023 14:08:01 +0100 Subject: [PATCH 1/5] Match versions --- dc_signup_form/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dc_signup_form/__init__.py b/dc_signup_form/__init__.py index 62b3483..40f2d00 100644 --- a/dc_signup_form/__init__.py +++ b/dc_signup_form/__init__.py @@ -1 +1 @@ -__version__ = "2.1.2" +__version__ = "2.1.3" From 95ce007f5e7b56ada84ae7ee42b39d3c8f5643b4 Mon Sep 17 00:00:00 2001 From: Virginia Dooley Date: Tue, 2 May 2023 13:29:53 +0100 Subject: [PATCH 2/5] Fix source_url from POST --- dc_signup_form/tests/test_views.py | 26 ++++++++++++++++++++++++++ dc_signup_form/views.py | 5 +++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/dc_signup_form/tests/test_views.py b/dc_signup_form/tests/test_views.py index dc49229..db79ff8 100644 --- a/dc_signup_form/tests/test_views.py +++ b/dc_signup_form/tests/test_views.py @@ -42,6 +42,32 @@ def test_post_mailing_list_form_view_valid(self): self.assertEqual(302, response.status_code) self.assertEqual(1, len(SignupQueue.objects.all())) + def test_source_url (self): + # add a test to make sure the source url is + # being passed through correctly + self.assertEqual(0, len(SignupQueue.objects.all())) + c = Client() + response = c.post( + "/emails/mailing_list/", + add_data_prefix( + MAILING_LIST_FORM_PREFIX, + { + "source_url": "/emails/mailing_list/", + "main_list": True, + "full_name": "Chad Fernandez", + "email": "chad@test.com", + "mailing_list_form": "", + }, + ), + ) + self.assertEqual(302, response.status_code) + self.assertEqual(1, len(SignupQueue.objects.all())) + self.assertEqual("/emails/mailing_list/", SignupQueue.objects.all()[0].data["source_url"]) + + + + + def test_post_mailing_list_form_view_invalid(self): self.assertEqual(0, len(SignupQueue.objects.all())) c = Client() diff --git a/dc_signup_form/views.py b/dc_signup_form/views.py index 7e1b91e..a373945 100644 --- a/dc_signup_form/views.py +++ b/dc_signup_form/views.py @@ -40,7 +40,8 @@ class SignupFormView(FormView): def get_success_url(self): messages.success(self.request, self.thanks_message) - source_url = self.request.POST.get("source_url") + form_name = self.get_form_class().prefix + source_url = self.request.POST.get(f"{form_name}-source_url") try: mailing_list_signup_view = reverse( @@ -56,7 +57,7 @@ def get_success_url(self): election_reminders_signup_view = "" try: - source_url_safe = get_http(source_url, allowed_hosts=None) + source_url_safe = get_http(source_url, host=self.request.get_host()) except TypeError: source_url_safe = get_http(source_url) if ( From 907bc69f7766fc524ff222de53ee4bccebcebed5 Mon Sep 17 00:00:00 2001 From: Virginia Dooley Date: Tue, 2 May 2023 13:30:07 +0100 Subject: [PATCH 3/5] Update testing docs --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 10b638d..e59406b 100644 --- a/README.md +++ b/README.md @@ -126,3 +126,7 @@ or display the form inline: {% endif %} ``` + +## Tests + +run ```python run_tests.py``` \ No newline at end of file From a38d9b03694688bebac15bcb0128b406f44d9158 Mon Sep 17 00:00:00 2001 From: Virginia Dooley Date: Tue, 2 May 2023 13:30:31 +0100 Subject: [PATCH 4/5] Bump dc_base_theme to 0.3.18 --- testing_requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing_requirements.txt b/testing_requirements.txt index 565fa89..1662c39 100644 --- a/testing_requirements.txt +++ b/testing_requirements.txt @@ -1,3 +1,3 @@ coveralls>=1.10.0 -git+git://github.com/DemocracyClub/dc_base_theme.git@0.3.17 +git+git://github.com/DemocracyClub/dc_base_theme.git@0.3.18 From eb8d95c1e6f0e80a9f54681b872cb80c06d90e2d Mon Sep 17 00:00:00 2001 From: Virginia Dooley Date: Tue, 16 May 2023 10:35:13 +0100 Subject: [PATCH 5/5] Add usage to docs --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e59406b..d36e44a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,11 @@ [![Build Status](https://travis-ci.org/DemocracyClub/dc_signup_form.svg?branch=master)](https://travis-ci.org/DemocracyClub/dc_signup_form) [![Coverage Status](https://coveralls.io/repos/github/DemocracyClub/dc_signup_form/badge.svg?branch=master)](https://coveralls.io/github/DemocracyClub/dc_signup_form?branch=master) -Django app with Email signup form for use on Democracy Club websites +Django app with Email signup form for use on Democracy Club websites. Currently, this app is used on: +* [Democracy Club](https://democracyclub.org.uk) +* [Who Can I Vote For?](https://whocanivotefor.co.uk) +* [Where Do I Vote?](https://wheredoivote.co.uk) + ## Installation @@ -129,4 +133,5 @@ or display the form inline: ## Tests -run ```python run_tests.py``` \ No newline at end of file +run ```python run_tests.py``` +