diff --git a/sessao/layouts.yaml b/sessao/layouts.yaml index 117be72f7..c4a18a93b 100644 --- a/sessao/layouts.yaml +++ b/sessao/layouts.yaml @@ -60,3 +60,10 @@ ExpedienteMateriaDetail: - materia - tipo_votacao - observacao + +Bancada: + Bancada: + - legislatura + - nome partido + - data_criacao data_extincao + - descricao diff --git a/sessao/migrations/0017_bancada.py b/sessao/migrations/0017_bancada.py new file mode 100644 index 000000000..25770a220 --- /dev/null +++ b/sessao/migrations/0017_bancada.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.5 on 2016-05-17 17:26 +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'), + ('sessao', '0016_auto_20160404_1409'), + ] + + operations = [ + migrations.CreateModel( + name='Bancada', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nome', models.CharField(max_length=80, verbose_name='Nome da Bancada, Bloco, Frente ou Grupo')), + ('data_criacao', models.DateField(blank=True, verbose_name='Data Criação')), + ('data_extincao', models.DateField(blank=True, verbose_name='Data Extinção')), + ('descricao', models.TextField(blank=True, verbose_name='Descrição')), + ('legislatura', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Legislatura', verbose_name='Legislatura')), + ('partido', models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Partido', verbose_name='Partido')), + ], + options={ + 'verbose_name_plural': 'Bancadas', + 'verbose_name': 'Bancada', + }, + ), + ] diff --git a/sessao/migrations/0018_auto_20160517_1435.py b/sessao/migrations/0018_auto_20160517_1435.py new file mode 100644 index 000000000..849ccad31 --- /dev/null +++ b/sessao/migrations/0018_auto_20160517_1435.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.5 on 2016-05-17 17:35 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0017_bancada'), + ] + + operations = [ + migrations.AlterField( + model_name='bancada', + name='data_criacao', + field=models.DateField(blank=True, null=True, verbose_name='Data Criação'), + ), + migrations.AlterField( + model_name='bancada', + name='data_extincao', + field=models.DateField(blank=True, null=True, verbose_name='Data Extinção'), + ), + migrations.AlterField( + model_name='bancada', + name='partido', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='parlamentares.Partido', verbose_name='Partido'), + ), + ] diff --git a/sessao/models.py b/sessao/models.py index 6e7e2e86f..45a4f724c 100644 --- a/sessao/models.py +++ b/sessao/models.py @@ -3,11 +3,32 @@ from django.utils.translation import ugettext_lazy as _ from model_utils import Choices from materia.models import MateriaLegislativa -from parlamentares.models import (CargoMesa, Legislatura, Parlamentar, +from parlamentares.models import (CargoMesa, Legislatura, Parlamentar, Partido, SessaoLegislativa) from sapl.utils import YES_NO_CHOICES, restringe_tipos_de_arquivo_txt +class Bancada(models.Model): + legislatura = models.ForeignKey(Legislatura, verbose_name=_('Legislatura')) + nome = models.CharField( + max_length=80, + verbose_name=_('Nome da Bancada, Bloco, Frente ou Grupo')) + partido = models.ForeignKey(Partido, blank=True, null=True, + verbose_name=_('Partido')) + data_criacao = models.DateField(blank=True, null=True, + verbose_name=_('Data Criação')) + data_extincao = models.DateField(blank=True, null=True, + verbose_name=_('Data Extinção')) + descricao = models.TextField(blank=True, verbose_name=_('Descrição')) + + class Meta: + verbose_name = _('Bancada') + verbose_name_plural = _('Bancadas') + + def __str__(self): + return self.nome + + class TipoSessaoPlenaria(models.Model): nome = models.CharField(max_length=30, verbose_name=_('Tipo')) quorum_minimo = models.PositiveIntegerField( diff --git a/sessao/urls.py b/sessao/urls.py index 222837042..1110e1528 100644 --- a/sessao/urls.py +++ b/sessao/urls.py @@ -2,11 +2,11 @@ from django.conf.urls import include, url from django.views.static import serve from sapl import settings -from sessao.views import (EditMateriaOrdemDiaView, ExpedienteMateriaCrud, - ExpedienteView, ListMateriaOrdemDiaView, - MateriaOrdemDiaView, MesaView, OradorCrud, - OradorExpedienteCrud, PainelView, - PautaExpedienteDetail, PautaOrdemDetail, +from sessao.views import (BancadaCrud, EditMateriaOrdemDiaView, + ExpedienteMateriaCrud, ExpedienteView, + ListMateriaOrdemDiaView, MateriaOrdemDiaView, + MesaView, OradorCrud, OradorExpedienteCrud, + PainelView, PautaExpedienteDetail, PautaOrdemDetail, PautaSessaoDetailView, PautaSessaoListView, PesquisarSessaoPlenariaView, PresencaOrdemDiaView, PresencaView, ResumoView, SessaoCrud, @@ -45,6 +45,8 @@ urlpatterns = [ include(TipoResultadoVotacaoCrud.get_urls())), url(r'^sistema/sessao-plenaria/tipo-expediente/', include(TipoExpedienteCrud.get_urls())), + url(r'^sistema/bancada/', + include(BancadaCrud.get_urls())), # PAUTA SESSÃO url(r'^pauta-sessao$', diff --git a/sessao/views.py b/sessao/views.py index cd91ca171..f4f053c45 100644 --- a/sessao/views.py +++ b/sessao/views.py @@ -32,7 +32,7 @@ from .models import (CargoMesa, ExpedienteMateria, ExpedienteSessao, OradorExpediente, OrdemDia, PresencaOrdemDia, RegistroVotacao, SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente, TipoResultadoVotacao, TipoSessaoPlenaria, - VotoParlamentar) + VotoParlamentar, Bancada) TipoSessaoCrud = Crud.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria') OrdemDiaCrud = Crud.build(OrdemDia, '') @@ -55,6 +55,14 @@ def reordernar_materias_expediente(request, pk): reverse('sessao:expedientemateria_list', kwargs={'pk': pk})) +class BancadaCrud(Crud): + model = Bancada + help_path = '' + + class BaseMixin(crud.base.CrudBaseMixin): + list_field_names = ['nome', 'legislatura'] + + def abrir_votacao_view(request, pk, spk): existe_votacao_aberta = ExpedienteMateria.objects.filter( sessao_plenaria_id=spk, votacao_aberta=True diff --git a/templates/sistema.html b/templates/sistema.html index ba536ec68..b1c59c4ee 100644 --- a/templates/sistema.html +++ b/templates/sistema.html @@ -34,7 +34,7 @@

Módulo Bancadas

-
Bancadas
+
Bancadas
Cargo de Bancada