From 985611ad3e94b02c441d9c1818d563a94cd599f3 Mon Sep 17 00:00:00 2001 From: ulyssesBML Date: Tue, 30 Apr 2019 10:16:16 -0300 Subject: [PATCH] Migrando model de bloco de sessao para parlamentar --- sapl/parlamentares/migrations/0026_bloco.py | 37 +++++++++++++++++++ .../migrations/0027_auto_20190430_0839.py | 19 ++++++++++ sapl/parlamentares/models.py | 34 +++++++++++++++++ sapl/rules/map_rules.py | 3 +- sapl/sessao/forms.py | 4 +- .../migrations/0039_auto_20190430_0825.py | 22 +++++++++++ sapl/sessao/models.py | 34 ----------------- sapl/sessao/views.py | 4 +- 8 files changed, 118 insertions(+), 39 deletions(-) create mode 100644 sapl/parlamentares/migrations/0026_bloco.py create mode 100644 sapl/parlamentares/migrations/0027_auto_20190430_0839.py create mode 100644 sapl/sessao/migrations/0039_auto_20190430_0825.py diff --git a/sapl/parlamentares/migrations/0026_bloco.py b/sapl/parlamentares/migrations/0026_bloco.py new file mode 100644 index 000000000..2ba9f2c07 --- /dev/null +++ b/sapl/parlamentares/migrations/0026_bloco.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-04-30 11:28 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('parlamentares', '0025_auto_20180924_1724'), + ('sessao', '0039_auto_20190430_0825') + ] + + state_operations = [ + migrations.CreateModel( + name='Bloco', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nome', models.CharField(max_length=80, verbose_name='Nome do Bloco')), + ('data_criacao', models.DateField(null=True, verbose_name='Data Criação')), + ('data_extincao', models.DateField(blank=True, null=True, verbose_name='Data Dissolução')), + ('descricao', models.TextField(blank=True, verbose_name='Descrição')), + ('partidos', models.ManyToManyField(blank=True, to='parlamentares.Partido', verbose_name='Partidos')), + ], + options={ + 'db_table': 'parlamentares_bloco', + 'verbose_name': 'Bloco Parlamentar', + 'verbose_name_plural': 'Blocos Parlamentares', + }, + bases=(models.Model,), + ), + ] + + operations = [ + migrations.SeparateDatabaseAndState(state_operations=state_operations) + ] diff --git a/sapl/parlamentares/migrations/0027_auto_20190430_0839.py b/sapl/parlamentares/migrations/0027_auto_20190430_0839.py new file mode 100644 index 000000000..454101416 --- /dev/null +++ b/sapl/parlamentares/migrations/0027_auto_20190430_0839.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-04-30 11:39 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('parlamentares', '0026_bloco'), + ] + + operations = [ + migrations.AlterModelTable( + name='bloco', + table=None, + ), + ] diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index d88f2fd87..d50600eba 100644 --- a/sapl/parlamentares/models.py +++ b/sapl/parlamentares/models.py @@ -568,3 +568,37 @@ class Votante(models.Model): def __str__(self): return self.user.username + + +@reversion.register() +class Bloco(models.Model): + ''' + * blocos podem existir por mais de uma legislatura + ''' + nome = models.CharField( + max_length=80, verbose_name=_('Nome do Bloco')) + partidos = models.ManyToManyField( + Partido, blank=True, verbose_name=_('Partidos')) + data_criacao = models.DateField( + blank=False, null=True, verbose_name=_('Data Criação')) + data_extincao = models.DateField( + blank=True, null=True, verbose_name=_('Data Dissolução')) + descricao = models.TextField(blank=True, verbose_name=_('Descrição')) + + # campo conceitual de reversão genérica para o model Autor que dá a + # o meio possível de localização de tipos de autores. + autor = SaplGenericRelation(Autor, + related_query_name='bloco_set', + fields_search=( + ('nome', '__icontains'), + ('descricao', '__icontains'), + ('partidos__sigla', '__icontains'), + ('partidos__nome', '__icontains'), + )) + + class Meta: + verbose_name = _('Bloco Parlamentar') + verbose_name_plural = _('Blocos Parlamentares') + + def __str__(self): + return self.nome diff --git a/sapl/rules/map_rules.py b/sapl/rules/map_rules.py index a82ef2c3f..75fc76f33 100644 --- a/sapl/rules/map_rules.py +++ b/sapl/rules/map_rules.py @@ -278,6 +278,8 @@ rules_group_geral = { (parlamentares.ComposicaoMesa, __base__, __perms_publicas__), (parlamentares.Frente, __base__, __perms_publicas__), (parlamentares.Votante, __base__, __perms_publicas__), + (parlamentares.Bloco, __base__, __perms_publicas__), + (sessao.CargoBancada, __base__, __perms_publicas__), (sessao.Bancada, __base__, __perms_publicas__), @@ -286,7 +288,6 @@ rules_group_geral = { (sessao.TipoExpediente, __base__, __perms_publicas__), (sessao.TipoJustificativa, __base__, __perms_publicas__), (sessao.JustificativaAusencia, __base__, __perms_publicas__), - (sessao.Bloco, __base__, __perms_publicas__), (sessao.ResumoOrdenacao, __base__, __perms_publicas__), (sessao.TipoRetiradaPauta, __base__, __perms_publicas__), diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 451f2b990..0050e2db2 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -17,13 +17,13 @@ from sapl.crispy_layout_mixin import form_actions, to_row, SaplFormLayout from sapl.materia.forms import MateriaLegislativaFilterSet from sapl.materia.models import (MateriaLegislativa, StatusTramitacao, TipoMateriaLegislativa) -from sapl.parlamentares.models import Parlamentar, Mandato +from sapl.parlamentares.models import Parlamentar, Mandato, Bloco from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES, MateriaPesquisaOrderingFilter, autor_label, autor_modal, timezone, choice_anos_com_sessaoplenaria, FileFieldCheckMixin) -from .models import (Bancada, Bloco, ExpedienteMateria, JustificativaAusencia, +from .models import (Bancada, ExpedienteMateria, JustificativaAusencia, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria, SessaoPlenariaPresenca, TipoResultadoVotacao, OcorrenciaSessao, RetiradaPauta, TipoRetiradaPauta, OradorOrdemDia, ORDENACAO_RESUMO, diff --git a/sapl/sessao/migrations/0039_auto_20190430_0825.py b/sapl/sessao/migrations/0039_auto_20190430_0825.py new file mode 100644 index 000000000..5a1c717f5 --- /dev/null +++ b/sapl/sessao/migrations/0039_auto_20190430_0825.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-04-30 11:25 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('sessao', '0038_merge_20190415_1800'), + ] + + database_operations = [migrations.AlterModelTable('Bloco', 'parlamentares_bloco')] + + state_operations = [migrations.DeleteModel('Bloco')] + + operations = [ + migrations.SeparateDatabaseAndState( + database_operations=database_operations, + state_operations=state_operations) + ] \ No newline at end of file diff --git a/sapl/sessao/models.py b/sapl/sessao/models.py index 3d7c98186..53721499b 100644 --- a/sapl/sessao/models.py +++ b/sapl/sessao/models.py @@ -550,40 +550,6 @@ class SessaoPlenariaPresenca(models.Model): ordering = ['parlamentar__nome_parlamentar'] -@reversion.register() -class Bloco(models.Model): - ''' - * blocos podem existir por mais de uma legislatura - ''' - nome = models.CharField( - max_length=80, verbose_name=_('Nome do Bloco')) - partidos = models.ManyToManyField( - Partido, blank=True, verbose_name=_('Partidos')) - data_criacao = models.DateField( - blank=False, null=True, verbose_name=_('Data Criação')) - data_extincao = models.DateField( - blank=True, null=True, verbose_name=_('Data Dissolução')) - descricao = models.TextField(blank=True, verbose_name=_('Descrição')) - - # campo conceitual de reversão genérica para o model Autor que dá a - # o meio possível de localização de tipos de autores. - autor = SaplGenericRelation(Autor, - related_query_name='bloco_set', - fields_search=( - ('nome', '__icontains'), - ('descricao', '__icontains'), - ('partidos__sigla', '__icontains'), - ('partidos__nome', '__icontains'), - )) - - class Meta: - verbose_name = _('Bloco Parlamentar') - verbose_name_plural = _('Blocos Parlamentares') - - def __str__(self): - return self.nome - - ORDENACAO_RESUMO = [ ('id_basica', 'Identificação Básica'), ('cont_mult', 'Conteúdo Multimídia'), diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index afc349221..ec690719d 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -32,7 +32,7 @@ from sapl.materia.models import (Autoria, TipoMateriaLegislativa, Tramitacao) from sapl.materia.views import MateriaLegislativaPesquisaView from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, - Parlamentar, SessaoLegislativa) + Parlamentar, SessaoLegislativa, Bloco) from sapl.sessao.apps import AppConfig from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm from sapl.utils import show_results_filter_set, remover_acentos, get_client_ip @@ -43,7 +43,7 @@ from .forms import (AdicionarVariasMateriasFilterSet, BancadaForm, BlocoForm, PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet, SessaoPlenariaForm, VotacaoEditForm, VotacaoForm, VotacaoNominalForm, RetiradaPautaForm, OradorOrdemDiaForm) -from .models import (Bancada, Bloco, CargoBancada, CargoMesa, +from .models import (Bancada, CargoBancada, CargoMesa, ExpedienteMateria, ExpedienteSessao, OcorrenciaSessao, IntegranteMesa, MateriaLegislativa, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao,