From 9a7e44e57cb57f5ea044015b2148d9682f9ad78d Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Thu, 17 Dec 2015 17:20:55 -0200 Subject: [PATCH] Add register of filiacao in parlamentares --- parlamentares/urls.py | 8 +- parlamentares/views.py | 76 +++++++++++++++++++ .../parlamentares/parlamentares_cadastro.html | 2 +- .../parlamentares_dependentes.html | 2 +- .../parlamentares_dependentes_edit.html | 2 +- .../parlamentares/parlamentares_filiacao.html | 37 +++++++++ 6 files changed, 121 insertions(+), 6 deletions(-) create mode 100644 templates/parlamentares/parlamentares_filiacao.html diff --git a/parlamentares/urls.py b/parlamentares/urls.py index 8ca7f7357..4ae7af173 100644 --- a/parlamentares/urls.py +++ b/parlamentares/urls.py @@ -1,6 +1,6 @@ from django.conf.urls import include, url - -from parlamentares.views import (MesaDiretoraView, ParlamentaresCadastroView, +from parlamentares.views import (FiliacaoView, MesaDiretoraView, + ParlamentaresCadastroView, ParlamentaresDependentesEditView, ParlamentaresDependentesView, ParlamentaresEditarView, ParlamentaresView, @@ -39,7 +39,9 @@ urlpatterns = [ url(r'^parlamentares/(?P\d+)/dependentes/(?P\d+)$', ParlamentaresDependentesEditView.as_view(), name='parlamentares_dependentes_edit'), - + url(r'^parlamentares/(?P\d+)/filiacao$', + FiliacaoView.as_view(), + name='parlamentares_filiacao'), url(r'^parlamentares/(?P\d+)/(?P\d+)/editar$', ParlamentaresEditarView.as_view(), name='parlamentares_editar'), diff --git a/parlamentares/views.py b/parlamentares/views.py index 93f9be5d9..9cebc8950 100644 --- a/parlamentares/views.py +++ b/parlamentares/views.py @@ -611,3 +611,79 @@ class MesaDiretoraView(FormMixin, GenericView): 'parlamentares': parlamentares_vagos, 'cargos_vagos': cargos_vagos }) + + +class FiliacaoForm(ModelForm): + + class Meta: + model = Filiacao + fields = ['partido', + 'data', + 'data_desfiliacao'] + + def __init__(self, *args, **kwargs): + + row1 = sapl.layout.to_row( + [('partido', 4), + ('data', 4), + ('data_desfiliacao', 4)]) + + self.helper = FormHelper() + self.helper.layout = Layout( + Fieldset('Adicionar Filiação', row1, + ButtonHolder( + Submit('Salvar', 'Salvar', + css_class='button primary'), + )) + + ) + super(FiliacaoForm, self).__init__( + *args, **kwargs) + + +class FiliacaoView(FormMixin, GenericView): + + template_name = "parlamentares/parlamentares_filiacao.html" + + def get_success_url(self): + pk = self.kwargs['pk'] + return reverse('parlamentares_filiacao', kwargs={'pk': pk}) + + def get(self, request, *args, **kwargs): + pid = kwargs['pk'] + parlamentar = Parlamentar.objects.get(id=pid) + filiacoes = Filiacao.objects.filter( + parlamentar=parlamentar) + + form = FiliacaoForm() + + return self.render_to_response( + {'parlamentar': parlamentar, + 'filiacoes': filiacoes, + 'form': form, + 'legislatura_id': parlamentar.mandato_set.last().legislatura.id}) + + def post(self, request, *args, **kwargs): + form = FiliacaoForm(request.POST) + + if form.is_valid(): + filiacao = form.save(commit=False) + + pid = kwargs['pk'] + parlamentar = Parlamentar.objects.get(id=pid) + filiacao.parlamentar = parlamentar + + filiacao.save() + return self.form_valid(form) + else: + pid = kwargs['pk'] + parlamentar = Parlamentar.objects.get(id=pid) + filiacoes = Filiacao.objects.filter( + parlamentar=parlamentar) + + return self.render_to_response( + {'parlamentar': parlamentar, + 'filiacoes': filiacoes, + 'form': form, + 'legislatura_id': parlamentar.mandato_set.last( + ).legislatura.id}) diff --git a/templates/parlamentares/parlamentares_cadastro.html b/templates/parlamentares/parlamentares_cadastro.html index 5c07bc602..03c01c9d3 100644 --- a/templates/parlamentares/parlamentares_cadastro.html +++ b/templates/parlamentares/parlamentares_cadastro.html @@ -5,7 +5,7 @@ {% endblock sections_nav %} diff --git a/templates/parlamentares/parlamentares_dependentes.html b/templates/parlamentares/parlamentares_dependentes.html index e01ae559f..20b8606dd 100644 --- a/templates/parlamentares/parlamentares_dependentes.html +++ b/templates/parlamentares/parlamentares_dependentes.html @@ -5,7 +5,7 @@ {% endblock %} diff --git a/templates/parlamentares/parlamentares_dependentes_edit.html b/templates/parlamentares/parlamentares_dependentes_edit.html index 31f425462..cfe9a7702 100644 --- a/templates/parlamentares/parlamentares_dependentes_edit.html +++ b/templates/parlamentares/parlamentares_dependentes_edit.html @@ -5,7 +5,7 @@ {% endblock %} diff --git a/templates/parlamentares/parlamentares_filiacao.html b/templates/parlamentares/parlamentares_filiacao.html new file mode 100644 index 000000000..bb9e126ad --- /dev/null +++ b/templates/parlamentares/parlamentares_filiacao.html @@ -0,0 +1,37 @@ +{% extends "crud/detail.html" %} +{% load i18n %} +{% load crispy_forms_tags %} +{% block actions %} + +{% endblock %} +{% block detail_content %} + +Parlamentar: {{ parlamentar.nome_parlamentar }} + +
+ Filiações + + + + + + + + {% for f in filiacoes %} + + + + + + {% endfor %} +
PartidoData FiliaçãoData Desfiliação
{{f.partido.sigla}}{{f.data}}{{f.data_desfiliacao}}
+
+ +{% crispy form %} + +{% endblock detail_content %}