Skip to content

Commit

Permalink
Adding a view and an html for a citizen to update her/his popular pro…
Browse files Browse the repository at this point in the history
…posal
  • Loading branch information
Felipe Álvarez committed Apr 5, 2016
1 parent 235d865 commit 6c555d2
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 3 deletions.
24 changes: 24 additions & 0 deletions backend_citizen/tests/views_tests.py
Expand Up @@ -3,6 +3,8 @@
from elections.tests import VotaInteligenteTestCase as TestCase
from django.contrib.auth.models import User
from popular_proposal.models import ProposalTemporaryData, PopularProposal
from popular_proposal.forms import ProposalTemporaryDataUpdateForm
from popolo.models import Area


PASSWORD = 'perrito'
Expand All @@ -14,6 +16,14 @@ def setUp(self):
self.fiera = User.objects.get(username='fiera')
self.fiera.set_password(PASSWORD)
self.fiera.save()
self.arica = Area.objects.get(id='arica-15101')
self.data = {
'problem': u'A mi me gusta la contaminación de Santiago y los autos y sus estresantes ruedas',
'solution': u'Viajar a ver al Feli una vez al mes',
'when': u'1_year',
'allies': u'El Feli y el resto de los cabros de la FCI'

}

def test_my_profile_view(self):
url = reverse('backend_citizen:index')
Expand All @@ -22,3 +32,17 @@ def test_my_profile_view(self):
self.client.login(username=self.fiera.username, password=PASSWORD)
response = self.client.get(url)
self.assertTemplateUsed(response, 'backend_citizen/index.html')

def test_temporary_promise_detail_view(self):
temporary_data = ProposalTemporaryData.objects.create(proposer=self.fiera,
area=self.arica,
data=self.data)
url = reverse('backend_citizen:temporary_data_update', kwargs={'pk': temporary_data.id})
response = self.client.get(url)
self.assertRedirects(response, reverse('auth_login')+'?next=' + url)
self.client.login(username=self.fiera.username, password=PASSWORD)
response = self.client.get(url)
self.assertTemplateUsed(response, 'backend_citizen/temporary_data_update.html')
self.assertIsInstance(response.context['form'], ProposalTemporaryDataUpdateForm)
form = response.context['form']
self.assertEquals(form.temporary_data, temporary_data)
5 changes: 4 additions & 1 deletion backend_citizen/urls.py
@@ -1,8 +1,11 @@
from django.conf.urls import patterns, url
from backend_citizen.views import IndexView
from backend_citizen.views import IndexView, PopularProposalTemporaryDataUpdateView

urlpatterns = patterns('',
url(r'^index/?$',
IndexView.as_view(),
name='index'),
url(r'^update_temporary_data/(?P<pk>[-\w]+)/?$',
PopularProposalTemporaryDataUpdateView.as_view(),
name='temporary_data_update'),
)
22 changes: 22 additions & 0 deletions backend_citizen/views.py
@@ -1,7 +1,29 @@
from django.shortcuts import render
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic.base import TemplateView
from django.views.generic.edit import FormView
from popular_proposal.forms import ProposalTemporaryDataUpdateForm
from popular_proposal.models import ProposalTemporaryData
from django.shortcuts import get_object_or_404


class IndexView(LoginRequiredMixin, TemplateView):
template_name='backend_citizen/index.html'


class PopularProposalTemporaryDataUpdateView(LoginRequiredMixin, FormView):
template_name = 'backend_citizen/temporary_data_update.html'
form_class = ProposalTemporaryDataUpdateForm

def get_form_kwargs(self):
kwargs = super(PopularProposalTemporaryDataUpdateView, self).get_form_kwargs()
pk = self.kwargs.pop('pk')
self.temporary_data = get_object_or_404(ProposalTemporaryData, pk=pk)
kwargs['temporary_data'] = self.temporary_data
kwargs['proposer'] = self.request.user
return kwargs

def get_context_data(self, *args, **kwargs):
context = super(PopularProposalTemporaryDataUpdateView, self).get_context_data(*args, **kwargs)
context['temporary_data'] = self.temporary_data
return context
1 change: 0 additions & 1 deletion popular_proposal/forms.py
Expand Up @@ -82,7 +82,6 @@ def reject(self):
class ProposalTemporaryDataUpdateForm(ProposalFormBase):
def __init__(self, *args, **kwargs):
self.proposer = kwargs.pop('proposer')
self.area = kwargs.pop('area')
self.temporary_data = kwargs.pop('temporary_data')
super(ProposalTemporaryDataUpdateForm, self).__init__(*args, **kwargs)

Expand Down
1 change: 0 additions & 1 deletion popular_proposal/tests/form_tests.py
Expand Up @@ -129,7 +129,6 @@ def test_temporary_popular_proposal(self):
}
form = ProposalTemporaryDataUpdateForm(data=data,
temporary_data=temporary_data,
area=self.arica,
proposer=self.fiera)
self.assertTrue(form.is_valid())
temporary_data = form.save()
Expand Down
@@ -0,0 +1,12 @@
{% load bootstrap_tags %}
{% load staticfiles %}
{% load i18n %}
{% load thumbnail %}

<form action="{% url 'backend_citizen:temporary_data_update' pk=temporary_data.id %}" method="POST" role="form">
{% csrf_token %}
{{ form|as_bootstrap }}
<div class="form-actions">
<button type="submit" class="btn btn-primary">{% trans 'Actualiza tu propuesta'%}</button>
</div>
</form>

0 comments on commit 6c555d2

Please sign in to comment.