From f89d0b5f58034c67a1a3b2362730bf2154596e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20=C3=81lvarez?= Date: Mon, 18 Jul 2016 13:31:46 -0400 Subject: [PATCH] View and form --- backend_citizen/tests/views_tests.py | 27 +++++++++++++++++++++++++-- backend_citizen/urls.py | 6 ++++-- backend_citizen/views.py | 16 +++++++++++++++- elections/tests/home_tests.py | 2 +- elections/views.py | 8 ++++---- 5 files changed, 49 insertions(+), 10 deletions(-) diff --git a/backend_citizen/tests/views_tests.py b/backend_citizen/tests/views_tests.py index b620111b..a89b6c03 100644 --- a/backend_citizen/tests/views_tests.py +++ b/backend_citizen/tests/views_tests.py @@ -95,13 +95,36 @@ def test_post_update_my_profile(self): "image": image } self.client.login(username=self.fiera.username, password=PASSWORD) - response = self.client.post(url, data=data,follow=True) + response = self.client.post(url, data=data, follow=True) self.assertTemplateUsed(response, 'backend_citizen/index.html') fiera = User.objects.get(id=self.fiera.id) self.assertEquals(fiera.profile.description, data['description']) self.assertTrue(fiera.profile.image) +class GroupUserCreateView(TestCase): + def setUp(self): + super(GroupUserCreateView, self).setUp() + + def test_posting_to_url(self): + url = reverse('backend_citizen:create_group') + original_amount = User.objects.count() + data = {'username': 'group', + 'name': 'This Is a Great Group', + 'email': 'group@mail.com', + 'password1': 'pass', + 'password2': 'pass', + } + response = self.client.post(url, data=data) + registration_complete_url = reverse('registration_activation_complete') + self.assertRedirects(response, registration_complete_url) + new_amount = User.objects.count() + self.assertEquals(new_amount, original_amount + 1) + tha_group = User.objects.get(username="group") + self.assertEquals(tha_group.first_name, data['name']) + self.assertTrue(tha_group.profile.is_organization) + + class OrganizationDetailViewTests(TestCase): def setUp(self): super(OrganizationDetailViewTests, self).setUp() @@ -113,4 +136,4 @@ def test_there_is_a_url(self): response = self.client.get(url) self.assertEquals(response.status_code, 200) self.assertTemplateUsed(response, 'backend_citizen/organization.html') - self.assertEquals(response.context['organization'], self.organization) + self.assertEquals(response.context['organization'], self.organization) \ No newline at end of file diff --git a/backend_citizen/urls.py b/backend_citizen/urls.py index f4d4c726..2740706e 100644 --- a/backend_citizen/urls.py +++ b/backend_citizen/urls.py @@ -5,15 +5,17 @@ OrganizationDetailView, OrganizationCreateView, DoYouBelongToAnOrgView, + GroupRegistrationView, ) -from django.views.generic.base import TemplateView -from django.contrib.auth.decorators import login_required urlpatterns = patterns('', url(r'^$', IndexView.as_view(), name='index'), + url(r'^create_group/?$', + GroupRegistrationView.as_view(), + name='create_group'), url(r'^organization/(?P[-\w]+)/?$', OrganizationDetailView.as_view(), name='organization'), diff --git a/backend_citizen/views.py b/backend_citizen/views.py index 04773854..f112d87b 100644 --- a/backend_citizen/views.py +++ b/backend_citizen/views.py @@ -7,13 +7,16 @@ from popular_proposal.models import ProposalTemporaryData from django.core.urlresolvers import reverse from django.views.generic.edit import UpdateView -from backend_citizen.forms import UserChangeForm, OrganizationCreationForm +from backend_citizen.forms import (UserChangeForm, + OrganizationCreationForm, + GroupCreationForm) from django.contrib.auth.models import User from backend_citizen.models import Organization from django.views.generic.edit import CreateView from django.shortcuts import redirect from django.contrib.auth.decorators import login_required from django.utils.decorators import method_decorator +from registration.views import RegistrationView class IndexView(TemplateView): @@ -96,3 +99,14 @@ def get(self, *args, **kwargs): self.request.user.profile.first_time_in_backend_citizen = True self.request.user.profile.save() return super(DoYouBelongToAnOrgView, self).get(*args, **kwargs) + + +class GroupRegistrationView(RegistrationView): + form_class = GroupCreationForm + + def register(self, form): + new_user = form.save() + return new_user + + def get_success_url(self, user): + return reverse('registration_activation_complete') \ No newline at end of file diff --git a/elections/tests/home_tests.py b/elections/tests/home_tests.py index 9599bb7c..54e4e04f 100644 --- a/elections/tests/home_tests.py +++ b/elections/tests/home_tests.py @@ -18,7 +18,7 @@ def test_get_home(self): self.assertTrue(response.status_code, 200) self.assertTemplateUsed(response, 'elections/home.html') self.assertTemplateUsed(response, 'base.html') - self.assertIn('form',response.context) + self.assertIn('form', response.context) self.assertIsInstance(response.context['form'], ElectionSearchByTagsForm) def test_home_view(self): diff --git a/elections/views.py b/elections/views.py index 09510386..814fc4e7 100644 --- a/elections/views.py +++ b/elections/views.py @@ -150,10 +150,10 @@ def determine_taken_positions(self, positions_dict): topic = Topic.objects.get(id=topic_id) try: position = Position.objects.get(id=position_id) - positions.append(TakenPosition( - topic=topic, - position=position - )) + positions.append(TakenPosition(topic=topic, + position=position + ) + ) except Position.DoesNotExist: pass return positions