Browse Source

Permite a adicao de partidos a composicao e a listagem deles

pull/472/head
Eduardo Calil 10 years ago
parent
commit
7d43e33c7f
  1. 15
      parlamentares/forms.py
  2. 4
      parlamentares/layouts.yaml
  3. 21
      parlamentares/migrations/0019_auto_20160518_1136.py
  4. 2
      parlamentares/models.py
  5. 8
      parlamentares/urls.py
  6. 30
      parlamentares/views.py
  7. 10
      templates/parlamentares/coligacao_detail.html
  8. 1
      templates/parlamentares/subnav.yaml

15
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):
@ -154,3 +155,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

4
parlamentares/layouts.yaml

@ -88,3 +88,7 @@ TipoAfastamento:
SituacaoMilitar:
Tipo Situação Militar:
- descricao
ComposicaoColigacao:
'Nome do Partido':
- partido

21
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'),
),
]

2
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:

8
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/',

30
parlamentares/views.py

@ -10,15 +10,16 @@ import crud.masterdetail
from crud.base import Crud
from crud.masterdetail import MasterDetailCrud
from .forms import (FiliacaoForm, LegislaturaForm, ParlamentarCreateForm,
ParlamentarForm)
from .models import (CargoMesa, Coligacao, ComposicaoMesa, Dependente,
Filiacao, Legislatura, Mandato, NivelInstrucao,
Parlamentar, Partido, SessaoLegislativa, SituacaoMilitar,
TipoAfastamento, TipoDependente)
from .forms import (ComposicaoColigacaoForm, FiliacaoForm, LegislaturaForm,
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')
LegislaturaCrud = Crud.build(Legislatura, 'tabelas_auxiliares#legislatura')
ColigacaoCrud = Crud.build(Coligacao, 'coligacao')
PartidoCrud = Crud.build(Partido, 'partidos')
SessaoLegislativaCrud = Crud.build(SessaoLegislativa, 'sessao_legislativa')
@ -39,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 LegislaturaCrud(Crud):
model = Legislatura
help_path = 'tabelas_auxiliares#legislatura'

10
templates/parlamentares/coligacao_detail.html

@ -0,0 +1,10 @@
{% extends "crud/detail.html" %}
{% load i18n %}
{% block actions %}
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'parlamentares:composicaocoligacao_list' object.pk %}" class="btn btn-default">{% trans 'Ver Composição' %}</a>
<a href="{{ view.update_url }}" class="btn btn-default">{% trans 'Editar' %}</a>
<a href="{{ view.delete_url }}" class="btn btn-default">{% trans 'Excluir' %}</a>
</div>
{% endblock actions %}

1
templates/parlamentares/subnav.yaml

@ -6,3 +6,4 @@
url: filiacao_list
- title: Dependentes
url: dependente_list

Loading…
Cancel
Save