diff --git a/parlamentares/forms.py b/parlamentares/forms.py index c6cb61f50..931caff90 100644 --- a/parlamentares/forms.py +++ b/parlamentares/forms.py @@ -52,64 +52,6 @@ class ParlamentarCreateForm(ParlamentarForm): return parlamentar -class MandatoForm(ModelForm): - - legislatura = forms.ModelChoiceField( - label=_('Legislatura'), - required=True, - queryset=Legislatura.objects.all().order_by('-data_inicio'), - empty_label='----------', - ) - - class Meta: - model = Mandato - fields = ['legislatura', - 'coligacao', - 'votos_recebidos', - 'data_fim_mandato', - 'data_expedicao_diploma', - 'tipo_afastamento', - 'observacao'] - - def __init__(self, *args, **kwargs): - - row1 = crispy_layout_mixin.to_row( - [('legislatura', 4), - ('coligacao', 4), - ('votos_recebidos', 4)]) - - row2 = crispy_layout_mixin.to_row( - [('data_fim_mandato', 6), - ('data_expedicao_diploma', 6)]) - - row3 = crispy_layout_mixin.to_row( - [('tipo_afastamento', 12)]) - - row4 = crispy_layout_mixin.to_row( - [('observacao', 12)]) - - self.helper = FormHelper() - self.helper.layout = Layout( - Fieldset(_('Adicionar Mandato'), row1, row2, row3, row4, - form_actions()) - - ) - super(MandatoForm, self).__init__( - *args, **kwargs) - - -class MandatoEditForm(MandatoForm): - - def __init__(self, *args, **kwargs): - super(MandatoEditForm, self).__init__( - *args, **kwargs) - - self.helper.layout[0][-1:] = form_actions(more=[ - HTML(' '), - Submit('excluir', 'Excluir', - css_class='btn btn-primary')]) - - class FiliacaoForm(ModelForm): class Meta: diff --git a/parlamentares/layouts.yaml b/parlamentares/layouts.yaml index d4d342231..be274551b 100644 --- a/parlamentares/layouts.yaml +++ b/parlamentares/layouts.yaml @@ -69,7 +69,8 @@ Filiacao: Mandato: Mandato: - legislatura coligacao votos_recebidos - - ind_titular_FIXME dat_inicio_mandato_FIXME data_fim_mandato data_expedicao_diploma + - data_fim_mandato data_expedicao_diploma + - tipo_afastamento - observacao TipoDependente: diff --git a/parlamentares/tests/test_parlamentares.py b/parlamentares/tests/test_parlamentares.py index c316415ca..9744aee38 100644 --- a/parlamentares/tests/test_parlamentares.py +++ b/parlamentares/tests/test_parlamentares.py @@ -120,7 +120,7 @@ def test_mandato_submit(client): mommy.make(Parlamentar, pk=14) mommy.make(Legislatura, pk=5) - client.post(reverse('parlamentares:parlamentar_mandato', + client.post(reverse('parlamentares:mandato_create', kwargs={'pk': 14}), {'legislatura': 5, 'data_fim_mandato': '2016-01-01', @@ -136,7 +136,7 @@ def test_mandato_submit(client): @pytest.mark.django_db(transaction=False) def test_form_errors_mandato(client): mommy.make(Parlamentar, pk=14) - response = client.post(reverse('parlamentares:parlamentar_mandato', + response = client.post(reverse('parlamentares:mandato_create', kwargs={'pk': 14}), {'legislatura': '', 'salvar': 'salvar'}, diff --git a/parlamentares/urls.py b/parlamentares/urls.py index 5015c3170..2c3978e55 100644 --- a/parlamentares/urls.py +++ b/parlamentares/urls.py @@ -2,7 +2,7 @@ from django.conf.urls import include, url from parlamentares.views import (CargoMesaCrud, ColigacaoCrud, DependenteCrud, FiliacaoEditView, FiliacaoView, - LegislaturaCrud, MandatoEditView, MandatoView, + LegislaturaCrud, MandatoCrud, MesaDiretoraView, NivelInstrucaoCrud, ParlamentarCrud, PartidoCrud, SessaoLegislativaCrud, TipoAfastamentoCrud, @@ -14,7 +14,8 @@ app_name = AppConfig.name urlpatterns = [ url(r'^parlamentar/', include( - ParlamentarCrud.get_urls() + DependenteCrud.get_urls() + ParlamentarCrud.get_urls() + DependenteCrud.get_urls() + + MandatoCrud.get_urls() )), url(r'^sistema/parlamentar/legislatura/', @@ -42,12 +43,6 @@ urlpatterns = [ url(r'^parlamentar/(?P\d+)/filiacao/(?P\d+)$', FiliacaoEditView.as_view(), name='parlamentar_filiacao_edit'), - url(r'^parlamentar/(?P\d+)/mandato$', - MandatoView.as_view(), - name='parlamentar_mandato'), - url(r'^parlamentar/(?P\d+)/mandato/(?P\d+)$', - MandatoEditView.as_view(), - name='parlamentar_mandato_edit'), url(r'^mesa-diretora/$', MesaDiretoraView.as_view(), name='mesa_diretora'), diff --git a/parlamentares/views.py b/parlamentares/views.py index 7ef91e9dc..794970f8d 100644 --- a/parlamentares/views.py +++ b/parlamentares/views.py @@ -10,8 +10,8 @@ import crud.base from crud.base import Crud from crud.masterdetail import MasterDetailCrud -from .forms import (FiliacaoEditForm, FiliacaoForm, MandatoEditForm, - MandatoForm, ParlamentarCreateForm, ParlamentarForm) +from .forms import (FiliacaoEditForm, FiliacaoForm, ParlamentarCreateForm, + ParlamentarForm) from .models import (CargoMesa, Coligacao, ComposicaoMesa, Dependente, Filiacao, Legislatura, Mandato, NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar, @@ -30,6 +30,7 @@ TipoAfastamentoCrud = Crud.build(TipoAfastamento, 'tipo_afastamento') TipoMilitarCrud = Crud.build(SituacaoMilitar, 'tipo_situa_militar') DependenteCrud = MasterDetailCrud.build(Dependente, 'parlamentar', '') +MandatoCrud = MasterDetailCrud.build(Mandato, 'parlamentar', '') class ParlamentarCrud(Crud): @@ -348,74 +349,3 @@ class FiliacaoEditView(UpdateView): filiacao.save() return HttpResponseRedirect(self.get_success_url()) - - -class MandatoView(CreateView): - template_name = "parlamentares/parlamentar_mandato.html" - model = Mandato - form_class = MandatoForm - - def get_success_url(self): - pk = self.kwargs['pk'] - return reverse('parlamentares:parlamentar_mandato', - kwargs={'pk': pk}) - - def get_context_data(self, **kwargs): - context = super(MandatoView, self).get_context_data(**kwargs) - pid = self.kwargs['pk'] - parlamentar = Parlamentar.objects.get(id=pid) - mandatos = Mandato.objects.filter(parlamentar=parlamentar) - - if len(parlamentar.mandato_set.all()) == 0: - legislatura_id = 0 - else: - legislatura_id = parlamentar.mandato_set.last().legislatura.id - - context.update( - {'object': parlamentar, - 'mandatos': mandatos, - 'legislatura_id': legislatura_id - } - ) - return context - - def form_valid(self, form): - pid = self.kwargs['pk'] - parlamentar = Parlamentar.objects.get(id=pid) - mandato = form.save(commit=False) - mandato.parlamentar = parlamentar - mandato.save() - return HttpResponseRedirect(self.get_success_url()) - - -class MandatoEditView(UpdateView): - template_name = "parlamentares/parlamentar_mandato_edit.html" - model = Mandato - form_class = MandatoEditForm - pk_url_kwarg = 'dk' - - def get_success_url(self): - pk = self.kwargs['pk'] - return reverse('parlamentares:parlamentar_mandato', - kwargs={'pk': pk}) - - def get_context_data(self, **kwargs): - context = super(MandatoEditView, self).get_context_data(**kwargs) - parlamentar = Parlamentar.objects.get(id=self.kwargs['pk']) - context.update( - {'object': parlamentar, - 'legislatura_id': parlamentar.mandato_set.last( - ).legislatura_id}) - return context - - def form_valid(self, form): - form = self.get_form() - parlamentar = Parlamentar.objects.get(id=self.kwargs['pk']) - if 'salvar' in self.request.POST: - mandato = form.save(commit=False) - mandato.parlamentar = parlamentar - mandato.save() - elif 'excluir' in self.request.POST: - form.instance.delete() - - return HttpResponseRedirect(self.get_success_url()) diff --git a/templates/parlamentares/parlamentar_mandato.html b/templates/parlamentares/parlamentar_mandato.html deleted file mode 100644 index 23461b46e..000000000 --- a/templates/parlamentares/parlamentar_mandato.html +++ /dev/null @@ -1,38 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %}{% endblock %} -{% block detail_content %} - -

Parlamentar: {{ object.nome_parlamentar }}

- -
- Mandatos - - - - - - - - - - - - - {% for m in mandatos %} - - - - - - - - - {% endfor %} -
LegislaturaColigaçãoFim MandatoExp. DiplomaNº VotosObservação
{{m.legislatura}}{{m.coligacao|default_if_none:""}}{{m.data_fim_mandato|default_if_none:""}}{{m.data_expedicao_diploma|default_if_none:""}}{{m.votos_recebidos|default_if_none:""}}{{m.observacao|default_if_none:""}}
-
- - {% crispy form %} - -{% endblock detail_content %} diff --git a/templates/parlamentares/parlamentar_mandato_edit.html b/templates/parlamentares/parlamentar_mandato_edit.html deleted file mode 100644 index 9682c56d5..000000000 --- a/templates/parlamentares/parlamentar_mandato_edit.html +++ /dev/null @@ -1,7 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %}{% endblock %} -{% block detail_content %} - {% crispy form %} -{% endblock detail_content %} diff --git a/templates/parlamentares/subnav.yaml b/templates/parlamentares/subnav.yaml index 64a43f3fe..4a5460213 100644 --- a/templates/parlamentares/subnav.yaml +++ b/templates/parlamentares/subnav.yaml @@ -1,7 +1,7 @@ - title: Início url: parlamentar_detail - title: Mandatos - url: parlamentar_mandato + url: mandato_list - title: Filiações Partidárias url: parlamentar_filiacao - title: Dependentes