diff --git a/sapl/legacy/test_renames.py b/sapl/legacy/test_renames.py index b92c5d0ac..9a5c4ebaf 100644 --- a/sapl/legacy/test_renames.py +++ b/sapl/legacy/test_renames.py @@ -13,9 +13,9 @@ from sapl.materia.models import (AcompanhamentoMateria, DocumentoAcessorio, from sapl.norma.models import (AnexoNormaJuridica, NormaJuridica, NormaRelacionada, TipoVinculoNormaJuridica) from sapl.parlamentares.models import (Frente, Mandato, Parlamentar, Partido, - TipoAfastamento, Votante) + TipoAfastamento, Votante, Bloco) from sapl.protocoloadm.models import DocumentoAdministrativo -from sapl.sessao.models import (Bancada, Bloco, CargoBancada, +from sapl.sessao.models import (Bancada, CargoBancada, ExpedienteMateria, Orador, OradorExpediente, OrdemDia, RegistroVotacao, ResumoOrdenacao, SessaoPlenaria, TipoResultadoVotacao, diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py index f52cea871..90d6e150c 100755 --- a/sapl/parlamentares/forms.py +++ b/sapl/parlamentares/forms.py @@ -23,7 +23,7 @@ from sapl.rules import SAPL_GROUP_VOTANTE import django_filters from .models import (ComposicaoColigacao, Filiacao, Frente, Legislatura, - Mandato, Parlamentar, Votante) + Mandato, Parlamentar, Votante, Bloco) class ImageThumbnailFileInput(ClearableFileInput): @@ -568,3 +568,38 @@ class VincularParlamentarForm(forms.Form): raise ValidationError(_('Data da Expedição do Diploma deve ser anterior a data de início da Legislatura.')) return cleaned_data + + +class BlocoForm(ModelForm): + + class Meta: + model = Bloco + fields = ['nome', 'partidos', 'data_criacao', + 'data_extincao', 'descricao'] + + def clean(self): + super(BlocoForm, self).clean() + + if not self.is_valid(): + return self.cleaned_data + + if self.cleaned_data['data_extincao']: + if (self.cleaned_data['data_extincao'] < + self.cleaned_data['data_criacao']): + msg = _('Data de extinção não pode ser menor que a de criação') + raise ValidationError(msg) + return self.cleaned_data + + @transaction.atomic + def save(self, commit=True): + bloco = super(BlocoForm, self).save(commit) + content_type = ContentType.objects.get_for_model(Bloco) + object_id = bloco.pk + tipo = TipoAutor.objects.get(content_type=content_type) + Autor.objects.create( + content_type=content_type, + object_id=object_id, + tipo=tipo, + nome=bloco.nome + ) + return bloco \ No newline at end of file diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py index 51fb856b4..4c1434333 100644 --- a/sapl/parlamentares/urls.py +++ b/sapl/parlamentares/urls.py @@ -18,7 +18,7 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud, insere_parlamentar_composicao, parlamentares_frente_selected, remove_parlamentar_composicao, - parlamentares_filiados, + parlamentares_filiados, BlocoCrud, PesquisarParlamentarView, VincularParlamentarView) from .apps import AppConfig @@ -46,8 +46,9 @@ urlpatterns = [ url(r'^sistema/coligacao/', include(ColigacaoCrud.get_urls() + - ComposicaoColigacaoCrud.get_urls())), - + ComposicaoColigacaoCrud.get_urls())), + url(r'^sistema/bloco/', + include(BlocoCrud.get_urls())), url(r'^sistema/frente/', include(FrenteCrud.get_urls())), url(r'^sistema/frente/atualiza-lista-parlamentares', @@ -89,4 +90,5 @@ urlpatterns = [ url(r'^mesa-diretora/remove-parlamentar-composicao/$', remove_parlamentar_composicao, name='remove_parlamentar_composicao'), + ] diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index d5e8cc41a..8e6ebee21 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -34,11 +34,15 @@ from sapl.parlamentares.apps import AppConfig from sapl.utils import (parlamentares_ativos, show_results_filter_set) from .forms import (FiliacaoForm, FrenteForm, LegislaturaForm, MandatoForm, - ParlamentarCreateForm, ParlamentarForm, VotanteForm, ParlamentarFilterSet, VincularParlamentarForm) + ParlamentarCreateForm, ParlamentarForm, VotanteForm, + ParlamentarFilterSet, VincularParlamentarForm, + BlocoForm) + from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa, Dependente, Filiacao, Frente, Legislatura, Mandato, NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, - SituacaoMilitar, TipoAfastamento, TipoDependente, Votante) + SituacaoMilitar, TipoAfastamento, TipoDependente, Votante, + Bloco) CargoMesaCrud = CrudAux.build(CargoMesa, 'cargo_mesa') @@ -1160,3 +1164,13 @@ class VincularParlamentarView(PermissionRequiredMixin, FormView): mandato.save() return HttpResponseRedirect(self.get_success_url()) + + +class BlocoCrud(CrudAux): + model = Bloco + + class CreateView(CrudAux.CreateView): + form_class = BlocoForm + + def get_success_url(self): + return reverse('sapl.parlamentares:bloco_list') \ No newline at end of file diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 0050e2db2..1e14b0f45 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -17,7 +17,7 @@ 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, Bloco +from sapl.parlamentares.models import Parlamentar, Mandato from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES, MateriaPesquisaOrderingFilter, autor_label, autor_modal, timezone, choice_anos_com_sessaoplenaria, @@ -316,41 +316,6 @@ class BancadaForm(ModelForm): return bancada -class BlocoForm(ModelForm): - - class Meta: - model = Bloco - fields = ['nome', 'partidos', 'data_criacao', - 'data_extincao', 'descricao'] - - def clean(self): - super(BlocoForm, self).clean() - - if not self.is_valid(): - return self.cleaned_data - - if self.cleaned_data['data_extincao']: - if (self.cleaned_data['data_extincao'] < - self.cleaned_data['data_criacao']): - msg = _('Data de extinção não pode ser menor que a de criação') - raise ValidationError(msg) - return self.cleaned_data - - @transaction.atomic - def save(self, commit=True): - bloco = super(BlocoForm, self).save(commit) - content_type = ContentType.objects.get_for_model(Bloco) - object_id = bloco.pk - tipo = TipoAutor.objects.get(content_type=content_type) - Autor.objects.create( - content_type=content_type, - object_id=object_id, - tipo=tipo, - nome=bloco.nome - ) - return bloco - - class ExpedienteMateriaForm(ModelForm): _model = ExpedienteMateria diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 00add810a..d5d709967 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -2,8 +2,8 @@ from django.conf.urls import include, url from sapl.sessao.views import (AdicionarVariasMateriasExpediente, AdicionarVariasMateriasOrdemDia, BancadaCrud, - BlocoCrud, CargoBancadaCrud, - ExpedienteMateriaCrud, ExpedienteView, JustificativaAusenciaCrud, + CargoBancadaCrud, ExpedienteMateriaCrud, + ExpedienteView, JustificativaAusenciaCrud, OcorrenciaSessaoView, MateriaOrdemDiaCrud, OradorOrdemDiaCrud, MesaView, OradorCrud, OradorExpedienteCrud, PainelView, @@ -96,8 +96,6 @@ urlpatterns = [ include(TipoRetiradaPautaCrud.get_urls())), url(r'^sistema/bancada/', include(BancadaCrud.get_urls())), - url(r'^sistema/bloco/', - include(BlocoCrud.get_urls())), url(r'^sistema/cargo-bancada/', include(CargoBancadaCrud.get_urls())), url(r'^sistema/resumo-ordenacao/', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index ec690719d..b376d8a1c 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -32,12 +32,12 @@ from sapl.materia.models import (Autoria, TipoMateriaLegislativa, Tramitacao) from sapl.materia.views import MateriaLegislativaPesquisaView from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, - Parlamentar, SessaoLegislativa, Bloco) + Parlamentar, SessaoLegislativa) 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 -from .forms import (AdicionarVariasMateriasFilterSet, BancadaForm, BlocoForm, +from .forms import (AdicionarVariasMateriasFilterSet, BancadaForm, ExpedienteForm, JustificativaAusenciaForm, OcorrenciaSessaoForm, ListMateriaForm, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet, @@ -679,16 +679,6 @@ class BancadaCrud(CrudAux): return reverse('sapl.sessao:bancada_list') -class BlocoCrud(CrudAux): - model = Bloco - - class CreateView(CrudAux.CreateView): - form_class = BlocoForm - - def get_success_url(self): - return reverse('sapl.sessao:bloco_list') - - def recuperar_numero_sessao(request): try: sessao = SessaoPlenaria.objects.filter( diff --git a/sapl/templates/menu_tabelas_auxiliares.yaml b/sapl/templates/menu_tabelas_auxiliares.yaml index 4f690ca00..9a9c40d8d 100644 --- a/sapl/templates/menu_tabelas_auxiliares.yaml +++ b/sapl/templates/menu_tabelas_auxiliares.yaml @@ -78,7 +78,7 @@ url: sapl.parlamentares:frente_list css_class: btn btn-link - title: {% trans 'Bloco Parlamentar' %} - url: sapl.sessao:bloco_list + url: sapl.parlamentares:bloco_list css_class: btn btn-link - title: {% trans 'Módulo Proposições' %} css_class: head_title diff --git a/sapl/templates/parlamentares/layouts.yaml b/sapl/templates/parlamentares/layouts.yaml index 030e32758..7c3e59908 100644 --- a/sapl/templates/parlamentares/layouts.yaml +++ b/sapl/templates/parlamentares/layouts.yaml @@ -127,3 +127,10 @@ Votante: {% trans 'Votante' %}: - parlamentar user - data + +Bloco: + {% trans 'Bloco' %}: + - nome + - data_criacao data_extincao + - partidos + - descricao \ No newline at end of file diff --git a/sapl/templates/sessao/layouts.yaml b/sapl/templates/sessao/layouts.yaml index 98307d74d..16e353910 100644 --- a/sapl/templates/sessao/layouts.yaml +++ b/sapl/templates/sessao/layouts.yaml @@ -84,13 +84,6 @@ CargoBancada: {% trans 'Cargo de Bancada' %}: - nome_cargo:8 cargo_unico -Bloco: - {% trans 'Bloco' %}: - - nome - - data_criacao data_extincao - - partidos - - descricao - TipoJustificativa: {% trans 'Tipo de Justificativa' %}: - descricao