From e74f482c18bfb7a0f38900dec9045f93a3ef48ec Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Wed, 18 May 2016 11:43:51 -0300 Subject: [PATCH] Permite a adicao de partidos a composicao e a listagem deles --- parlamentares/forms.py | 15 ++++++++++- parlamentares/layouts.yaml | 4 +++ .../migrations/0019_auto_20160518_1136.py | 21 +++++++++++++++ parlamentares/models.py | 2 +- parlamentares/urls.py | 8 +++--- parlamentares/views.py | 27 +++++++++++++++---- templates/parlamentares/coligacao_detail.html | 10 +++++++ templates/parlamentares/subnav.yaml | 1 + 8 files changed, 78 insertions(+), 10 deletions(-) create mode 100644 parlamentares/migrations/0019_auto_20160518_1136.py create mode 100644 templates/parlamentares/coligacao_detail.html diff --git a/parlamentares/forms.py b/parlamentares/forms.py index dd345345c..e04f33c20 100644 --- a/parlamentares/forms.py +++ b/parlamentares/forms.py @@ -10,7 +10,8 @@ from floppyforms.widgets import ClearableFileInput import sapl from sapl.utils import intervalos_tem_intersecao -from .models import Filiacao, Legislatura, Mandato, Parlamentar +from .models import (ComposicaoColigacao, Filiacao, Legislatura, + Mandato, Parlamentar) class ImageThumbnailFileInput(ClearableFileInput): @@ -135,3 +136,15 @@ class FiliacaoForm(ModelForm): raise ValidationError(validacao[1]) return self.cleaned_data + + +class ComposicaoColigacaoForm(ModelForm): + + class Meta: + model = ComposicaoColigacao + fields = ['partido'] + + def clean(self): + if self.errors: + return self.errors + return self.cleaned_data diff --git a/parlamentares/layouts.yaml b/parlamentares/layouts.yaml index be274551b..866a791f9 100644 --- a/parlamentares/layouts.yaml +++ b/parlamentares/layouts.yaml @@ -88,3 +88,7 @@ TipoAfastamento: SituacaoMilitar: Tipo Situação Militar: - descricao + +ComposicaoColigacao: + 'Nome do Partido': + - partido diff --git a/parlamentares/migrations/0019_auto_20160518_1136.py b/parlamentares/migrations/0019_auto_20160518_1136.py new file mode 100644 index 000000000..f391c8be8 --- /dev/null +++ b/parlamentares/migrations/0019_auto_20160518_1136.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.5 on 2016-05-18 14:36 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('parlamentares', '0018_auto_20160510_0943'), + ] + + operations = [ + migrations.AlterField( + model_name='composicaocoligacao', + name='partido', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Partido', verbose_name='Partido'), + ), + ] diff --git a/parlamentares/models.py b/parlamentares/models.py index 2616c8dfb..6f2b326af 100644 --- a/parlamentares/models.py +++ b/parlamentares/models.py @@ -95,7 +95,7 @@ class Partido(models.Model): class ComposicaoColigacao(models.Model): # TODO M2M - partido = models.ForeignKey(Partido) + partido = models.ForeignKey(Partido, verbose_name=_('Partido')) coligacao = models.ForeignKey(Coligacao) class Meta: diff --git a/parlamentares/urls.py b/parlamentares/urls.py index a6137d613..de3525339 100644 --- a/parlamentares/urls.py +++ b/parlamentares/urls.py @@ -1,6 +1,7 @@ from django.conf.urls import include, url -from parlamentares.views import (CargoMesaCrud, ColigacaoCrud, DependenteCrud, +from parlamentares.views import (CargoMesaCrud, ColigacaoCrud, + ComposicaoColigacaoCrud, DependenteCrud, FiliacaoCrud, LegislaturaCrud, MandatoCrud, MesaDiretoraView, NivelInstrucaoCrud, ParlamentarCrud, PartidoCrud, @@ -16,6 +17,9 @@ urlpatterns = [ ParlamentarCrud.get_urls() + DependenteCrud.get_urls() + FiliacaoCrud.get_urls() + MandatoCrud.get_urls() )), + url(r'^coligacao/', + include(ColigacaoCrud.get_urls() + + ComposicaoColigacaoCrud.get_urls())), url(r'^sistema/parlamentar/legislatura/', include(LegislaturaCrud.get_urls())), @@ -23,8 +27,6 @@ urlpatterns = [ include(TipoDependenteCrud.get_urls())), url(r'^sistema/parlamentar/nivel-instrucao/', include(NivelInstrucaoCrud.get_urls())), - url(r'^sistema/parlamentar/coligacao/', - include(ColigacaoCrud.get_urls())), url(r'^sistema/parlamentar/tipo-afastamento/', include(TipoAfastamentoCrud.get_urls())), url(r'^sistema/parlamentar/tipo-militar/', diff --git a/parlamentares/views.py b/parlamentares/views.py index 70d839ef0..de87970c6 100644 --- a/parlamentares/views.py +++ b/parlamentares/views.py @@ -10,11 +10,13 @@ import crud.masterdetail from crud.base import Crud from crud.masterdetail import MasterDetailCrud -from .forms import FiliacaoForm, ParlamentarCreateForm, ParlamentarForm -from .models import (CargoMesa, Coligacao, ComposicaoMesa, Dependente, - Filiacao, Legislatura, Mandato, NivelInstrucao, - Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar, - TipoAfastamento, TipoDependente) +from .forms import (ComposicaoColigacaoForm, FiliacaoForm, + ParlamentarCreateForm, ParlamentarForm) + +from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa, + Dependente, Filiacao, Legislatura, Mandato, + NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, + SituacaoMilitar, TipoAfastamento, TipoDependente) CargoMesaCrud = Crud.build(CargoMesa, 'cargo_mesa') LegislaturaCrud = Crud.build(Legislatura, 'tabelas_auxiliares#legislatura') @@ -38,6 +40,21 @@ class MandatoCrud(MasterDetailCrud): ordering = ('-legislatura__data_inicio') +class ComposicaoColigacaoCrud(MasterDetailCrud): + model = ComposicaoColigacao + parent_field = 'coligacao' + help_path = '' + + class CreateView(MasterDetailCrud.CreateView): + form_class = ComposicaoColigacaoForm + + class UpdateView(MasterDetailCrud.UpdateView): + form_class = ComposicaoColigacaoForm + + class ListView(MasterDetailCrud.ListView): + ordering = '-partido__sigla' + + class FiliacaoCrud(MasterDetailCrud): model = Filiacao parent_field = 'parlamentar' diff --git a/templates/parlamentares/coligacao_detail.html b/templates/parlamentares/coligacao_detail.html new file mode 100644 index 000000000..9b9be3a54 --- /dev/null +++ b/templates/parlamentares/coligacao_detail.html @@ -0,0 +1,10 @@ +{% extends "crud/detail.html" %} +{% load i18n %} + +{% block actions %} +
+ {% trans 'Ver Composição' %} + {% trans 'Editar' %} + {% trans 'Excluir' %} +
+{% endblock actions %} \ No newline at end of file diff --git a/templates/parlamentares/subnav.yaml b/templates/parlamentares/subnav.yaml index 1287cb308..fc171ea84 100644 --- a/templates/parlamentares/subnav.yaml +++ b/templates/parlamentares/subnav.yaml @@ -6,3 +6,4 @@ url: filiacao_list - title: Dependentes url: dependente_list +