Skip to content
This repository has been archived by the owner on Sep 3, 2024. It is now read-only.

Hotfix/mailing list #22

Merged
merged 5 commits into from
May 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -126,3 +130,8 @@ or display the form inline:
</div>
{% endif %}
```

## Tests

run ```python run_tests.py```

2 changes: 1 addition & 1 deletion dc_signup_form/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "2.1.2"
__version__ = "2.1.3"
26 changes: 26 additions & 0 deletions dc_signup_form/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
5 changes: 3 additions & 2 deletions dc_signup_form/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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 (
Expand Down
2 changes: 1 addition & 1 deletion testing_requirements.txt
Original file line number Diff line number Diff line change
@@ -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