Browse Source

Merge branch '3.1.x' into 2754-tramitacao-anexados-doc-adm

pull/2757/head
Cesar Augusto de Carvalho 7 years ago
committed by GitHub
parent
commit
c10e8ac2c6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      sapl/legacy/test_renames.py
  2. 18
      sapl/materia/forms.py
  3. 56
      sapl/materia/tests/test_materia.py
  4. 29
      sapl/materia/views.py
  5. 37
      sapl/parlamentares/forms.py
  6. 37
      sapl/parlamentares/migrations/0026_bloco.py
  7. 19
      sapl/parlamentares/migrations/0027_auto_20190430_0839.py
  8. 34
      sapl/parlamentares/models.py
  9. 8
      sapl/parlamentares/urls.py
  10. 18
      sapl/parlamentares/views.py
  11. 3
      sapl/rules/map_rules.py
  12. 37
      sapl/sessao/forms.py
  13. 22
      sapl/sessao/migrations/0039_auto_20190430_0825.py
  14. 34
      sapl/sessao/models.py
  15. 6
      sapl/sessao/urls.py
  16. 14
      sapl/sessao/views.py
  17. 2
      sapl/templates/menu_tabelas_auxiliares.yaml
  18. 7
      sapl/templates/parlamentares/layouts.yaml
  19. 7
      sapl/templates/sessao/layouts.yaml

4
sapl/legacy/test_renames.py

@ -13,9 +13,9 @@ from sapl.materia.models import (AcompanhamentoMateria, DocumentoAcessorio,
from sapl.norma.models import (AnexoNormaJuridica, NormaJuridica, from sapl.norma.models import (AnexoNormaJuridica, NormaJuridica,
NormaRelacionada, TipoVinculoNormaJuridica) NormaRelacionada, TipoVinculoNormaJuridica)
from sapl.parlamentares.models import (Frente, Mandato, Parlamentar, Partido, from sapl.parlamentares.models import (Frente, Mandato, Parlamentar, Partido,
TipoAfastamento, Votante) TipoAfastamento, Votante, Bloco)
from sapl.protocoloadm.models import DocumentoAdministrativo from sapl.protocoloadm.models import DocumentoAdministrativo
from sapl.sessao.models import (Bancada, Bloco, CargoBancada, from sapl.sessao.models import (Bancada, CargoBancada,
ExpedienteMateria, Orador, OradorExpediente, ExpedienteMateria, Orador, OradorExpediente,
OrdemDia, RegistroVotacao, ResumoOrdenacao, OrdemDia, RegistroVotacao, ResumoOrdenacao,
SessaoPlenaria, TipoResultadoVotacao, SessaoPlenaria, TipoResultadoVotacao,

18
sapl/materia/forms.py

@ -553,10 +553,14 @@ class TramitacaoForm(ModelForm):
def save(self, commit=True): def save(self, commit=True):
tramitacao = super(TramitacaoForm, self).save(commit) tramitacao = super(TramitacaoForm, self).save(commit)
materia = tramitacao.materia materia = tramitacao.materia
materia.em_tramitacao = False if tramitacao.status.indicador == "F" else True
materia.save()
lista_tramitacao = [] lista_tramitacao = []
for ma in materia.anexadas.all(): for ma in materia.anexadas.all():
if not ma.tramitacao_set.all() \ if not ma.tramitacao_set.all() \
or ma.tramitacao_set.last().unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local: or ma.tramitacao_set.last().unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
ma.em_tramitacao = False if tramitacao.status.indicador == "F" else True
ma.save()
lista_tramitacao.append(Tramitacao( lista_tramitacao.append(Tramitacao(
status=tramitacao.status, status=tramitacao.status,
materia=ma, materia=ma,
@ -576,6 +580,20 @@ class TramitacaoForm(ModelForm):
return tramitacao return tramitacao
def lista_anexadas(materia_principal):
materias_anexadas = []
anexadas_principal = Anexada.objects.filter(materia_principal=materia_principal)
while anexadas_principal:
anexadas = []
for anexada in anexadas_principal:
materias_anexadas.append(anexada.materia_anexada)
anexadas_anexada = Anexada.objects.filter(materia_principal=anexada.materia_anexada)
anexadas.extend(anexadas_anexada)
anexadas_principal = anexadas
return materias_anexadas
class TramitacaoUpdateForm(TramitacaoForm): class TramitacaoUpdateForm(TramitacaoForm):
unidade_tramitacao_local = forms.ModelChoiceField( unidade_tramitacao_local = forms.ModelChoiceField(
queryset=UnidadeTramitacao.objects.all(), queryset=UnidadeTramitacao.objects.all(),

56
sapl/materia/tests/test_materia.py

@ -14,12 +14,68 @@ from sapl.materia.models import (Anexada, Autoria, DespachoInicial,
StatusTramitacao, TipoDocumento, StatusTramitacao, TipoDocumento,
TipoMateriaLegislativa, TipoProposicao, TipoMateriaLegislativa, TipoProposicao,
Tramitacao, UnidadeTramitacao) Tramitacao, UnidadeTramitacao)
from sapl.materia.forms import lista_anexadas
from sapl.norma.models import (LegislacaoCitada, NormaJuridica, from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
TipoNormaJuridica) TipoNormaJuridica)
from sapl.parlamentares.models import Legislatura from sapl.parlamentares.models import Legislatura
from sapl.utils import models_with_gr_for_model from sapl.utils import models_with_gr_for_model
@pytest.mark.django_db(transaction=False)
def test_lista_anexadas():
tipo_materia = mommy.make(
TipoMateriaLegislativa,
descricao="Tipo_Teste"
)
regime_tramitacao = mommy.make(
RegimeTramitacao,
descricao="Regime_Teste"
)
materia_principal = mommy.make(
MateriaLegislativa,
numero=20,
ano=2018,
data_apresentacao="2018-01-04",
regime_tramitacao=regime_tramitacao,
tipo=tipo_materia
)
materia_anexada = mommy.make(
MateriaLegislativa,
numero=21,
ano=2019,
data_apresentacao="2019-05-04",
regime_tramitacao=regime_tramitacao,
tipo=tipo_materia
)
materia_anexada_anexada = mommy.make(
MateriaLegislativa,
numero=22,
ano=2020,
data_apresentacao="2020-01-05",
regime_tramitacao=regime_tramitacao,
tipo=tipo_materia
)
mommy.make(
Anexada,
materia_principal=materia_principal,
materia_anexada=materia_anexada,
data_anexacao="2019-05-11"
)
mommy.make(
Anexada,
materia_principal=materia_anexada,
materia_anexada=materia_anexada_anexada,
data_anexacao="2020-11-05"
)
lista = lista_anexadas(materia_principal)
assert len(lista) == 2
assert lista[0] == materia_anexada
assert lista[1] == materia_anexada_anexada
@pytest.mark.django_db(transaction=False) @pytest.mark.django_db(transaction=False)
def make_unidade_tramitacao(descricao): def make_unidade_tramitacao(descricao):
# Cria uma comissão para ser a unidade de tramitação # Cria uma comissão para ser a unidade de tramitação

29
sapl/materia/views.py

@ -47,7 +47,8 @@ from sapl.materia.forms import (AnexadaForm, AutoriaForm,
ConfirmarProposicaoForm, ConfirmarProposicaoForm,
DevolverProposicaoForm, LegislacaoCitadaForm, DevolverProposicaoForm, LegislacaoCitadaForm,
OrgaoForm, ProposicaoForm, TipoProposicaoForm, OrgaoForm, ProposicaoForm, TipoProposicaoForm,
TramitacaoForm, TramitacaoUpdateForm, MateriaPesquisaSimplesForm) TramitacaoForm, TramitacaoUpdateForm, MateriaPesquisaSimplesForm,
lista_anexadas)
from sapl.norma.models import LegislacaoCitada from sapl.norma.models import LegislacaoCitada
from sapl.parlamentares.models import Legislatura from sapl.parlamentares.models import Legislatura
from sapl.protocoloadm.models import Protocolo from sapl.protocoloadm.models import Protocolo
@ -1233,12 +1234,6 @@ class TramitacaoCrud(MasterDetailCrud):
self.object = form.save() self.object = form.save()
username = self.request.user.username username = self.request.user.username
if form.instance.status.indicador == 'F':
form.instance.materia.em_tramitacao = False
else:
form.instance.materia.em_tramitacao = True
form.instance.materia.save()
try: try:
self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={})." self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={})."
.format(Tramitacao, self.object, self.request)) .format(Tramitacao, self.object, self.request))
@ -1272,12 +1267,6 @@ class TramitacaoCrud(MasterDetailCrud):
self.object = form.save() self.object = form.save()
username = self.request.user.username username = self.request.user.username
if form.instance.status.indicador == 'F':
form.instance.materia.em_tramitacao = False
else:
form.instance.materia.em_tramitacao = True
form.instance.materia.save()
try: try:
self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}" self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
.format(Tramitacao, self.object, self.request)) .format(Tramitacao, self.object, self.request))
@ -1611,6 +1600,20 @@ class MateriaLegislativaCrud(Crud):
form_class = MateriaLegislativaForm form_class = MateriaLegislativaForm
def form_valid(self, form):
self.object = form.save()
username = self.request.user.username
if Anexada.objects.filter(materia_principal=self.kwargs['pk']).exists():
materia = MateriaLegislativa.objects.get(pk=self.kwargs['pk'])
anexadas = lista_anexadas(materia)
for anexada in anexadas:
anexada.em_tramitacao = True if form.instance.em_tramitacao else False
anexada.save()
return super().form_valid(form)
@property @property
def cancel_url(self): def cancel_url(self):
return self.search_url return self.search_url

37
sapl/parlamentares/forms.py

@ -23,7 +23,7 @@ from sapl.rules import SAPL_GROUP_VOTANTE
import django_filters import django_filters
from .models import (ComposicaoColigacao, Filiacao, Frente, Legislatura, from .models import (ComposicaoColigacao, Filiacao, Frente, Legislatura,
Mandato, Parlamentar, Votante) Mandato, Parlamentar, Votante, Bloco)
class ImageThumbnailFileInput(ClearableFileInput): 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.')) raise ValidationError(_('Data da Expedição do Diploma deve ser anterior a data de início da Legislatura.'))
return cleaned_data 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

37
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)
]

19
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,
),
]

34
sapl/parlamentares/models.py

@ -568,3 +568,37 @@ class Votante(models.Model):
def __str__(self): def __str__(self):
return self.user.username 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

8
sapl/parlamentares/urls.py

@ -18,7 +18,7 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
insere_parlamentar_composicao, insere_parlamentar_composicao,
parlamentares_frente_selected, parlamentares_frente_selected,
remove_parlamentar_composicao, remove_parlamentar_composicao,
parlamentares_filiados, parlamentares_filiados, BlocoCrud,
PesquisarParlamentarView, VincularParlamentarView) PesquisarParlamentarView, VincularParlamentarView)
from .apps import AppConfig from .apps import AppConfig
@ -46,8 +46,9 @@ urlpatterns = [
url(r'^sistema/coligacao/', url(r'^sistema/coligacao/',
include(ColigacaoCrud.get_urls() + include(ColigacaoCrud.get_urls() +
ComposicaoColigacaoCrud.get_urls())), ComposicaoColigacaoCrud.get_urls())),
url(r'^sistema/bloco/',
include(BlocoCrud.get_urls())),
url(r'^sistema/frente/', url(r'^sistema/frente/',
include(FrenteCrud.get_urls())), include(FrenteCrud.get_urls())),
url(r'^sistema/frente/atualiza-lista-parlamentares', url(r'^sistema/frente/atualiza-lista-parlamentares',
@ -89,4 +90,5 @@ urlpatterns = [
url(r'^mesa-diretora/remove-parlamentar-composicao/$', url(r'^mesa-diretora/remove-parlamentar-composicao/$',
remove_parlamentar_composicao, name='remove_parlamentar_composicao'), remove_parlamentar_composicao, name='remove_parlamentar_composicao'),
] ]

18
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 sapl.utils import (parlamentares_ativos, show_results_filter_set)
from .forms import (FiliacaoForm, FrenteForm, LegislaturaForm, MandatoForm, 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, from .models import (CargoMesa, Coligacao, ComposicaoColigacao, ComposicaoMesa,
Dependente, Filiacao, Frente, Legislatura, Mandato, Dependente, Filiacao, Frente, Legislatura, Mandato,
NivelInstrucao, Parlamentar, Partido, SessaoLegislativa, NivelInstrucao, Parlamentar, Partido, SessaoLegislativa,
SituacaoMilitar, TipoAfastamento, TipoDependente, Votante) SituacaoMilitar, TipoAfastamento, TipoDependente, Votante,
Bloco)
CargoMesaCrud = CrudAux.build(CargoMesa, 'cargo_mesa') CargoMesaCrud = CrudAux.build(CargoMesa, 'cargo_mesa')
@ -1164,3 +1168,13 @@ class VincularParlamentarView(PermissionRequiredMixin, FormView):
mandato.save() mandato.save()
return HttpResponseRedirect(self.get_success_url()) 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')

3
sapl/rules/map_rules.py

@ -278,6 +278,8 @@ rules_group_geral = {
(parlamentares.ComposicaoMesa, __base__, __perms_publicas__), (parlamentares.ComposicaoMesa, __base__, __perms_publicas__),
(parlamentares.Frente, __base__, __perms_publicas__), (parlamentares.Frente, __base__, __perms_publicas__),
(parlamentares.Votante, __base__, __perms_publicas__), (parlamentares.Votante, __base__, __perms_publicas__),
(parlamentares.Bloco, __base__, __perms_publicas__),
(sessao.CargoBancada, __base__, __perms_publicas__), (sessao.CargoBancada, __base__, __perms_publicas__),
(sessao.Bancada, __base__, __perms_publicas__), (sessao.Bancada, __base__, __perms_publicas__),
@ -286,7 +288,6 @@ rules_group_geral = {
(sessao.TipoExpediente, __base__, __perms_publicas__), (sessao.TipoExpediente, __base__, __perms_publicas__),
(sessao.TipoJustificativa, __base__, __perms_publicas__), (sessao.TipoJustificativa, __base__, __perms_publicas__),
(sessao.JustificativaAusencia, __base__, __perms_publicas__), (sessao.JustificativaAusencia, __base__, __perms_publicas__),
(sessao.Bloco, __base__, __perms_publicas__),
(sessao.ResumoOrdenacao, __base__, __perms_publicas__), (sessao.ResumoOrdenacao, __base__, __perms_publicas__),
(sessao.TipoRetiradaPauta, __base__, __perms_publicas__), (sessao.TipoRetiradaPauta, __base__, __perms_publicas__),

37
sapl/sessao/forms.py

@ -23,7 +23,7 @@ from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES,
autor_modal, timezone, choice_anos_com_sessaoplenaria, autor_modal, timezone, choice_anos_com_sessaoplenaria,
FileFieldCheckMixin) FileFieldCheckMixin)
from .models import (Bancada, Bloco, ExpedienteMateria, JustificativaAusencia, from .models import (Bancada, ExpedienteMateria, JustificativaAusencia,
Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, TipoResultadoVotacao, SessaoPlenariaPresenca, TipoResultadoVotacao,
OcorrenciaSessao, RetiradaPauta, TipoRetiradaPauta, OradorOrdemDia, ORDENACAO_RESUMO, OcorrenciaSessao, RetiradaPauta, TipoRetiradaPauta, OradorOrdemDia, ORDENACAO_RESUMO,
@ -316,41 +316,6 @@ class BancadaForm(ModelForm):
return bancada 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): class ExpedienteMateriaForm(ModelForm):
_model = ExpedienteMateria _model = ExpedienteMateria

22
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)
]

34
sapl/sessao/models.py

@ -550,40 +550,6 @@ class SessaoPlenariaPresenca(models.Model):
ordering = ['parlamentar__nome_parlamentar'] 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 = [ ORDENACAO_RESUMO = [
('id_basica', 'Identificação Básica'), ('id_basica', 'Identificação Básica'),
('cont_mult', 'Conteúdo Multimídia'), ('cont_mult', 'Conteúdo Multimídia'),

6
sapl/sessao/urls.py

@ -2,8 +2,8 @@ from django.conf.urls import include, url
from sapl.sessao.views import (AdicionarVariasMateriasExpediente, from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
AdicionarVariasMateriasOrdemDia, BancadaCrud, AdicionarVariasMateriasOrdemDia, BancadaCrud,
BlocoCrud, CargoBancadaCrud, CargoBancadaCrud, ExpedienteMateriaCrud,
ExpedienteMateriaCrud, ExpedienteView, JustificativaAusenciaCrud, ExpedienteView, JustificativaAusenciaCrud,
OcorrenciaSessaoView, MateriaOrdemDiaCrud, OradorOrdemDiaCrud, OcorrenciaSessaoView, MateriaOrdemDiaCrud, OradorOrdemDiaCrud,
MesaView, OradorCrud, MesaView, OradorCrud,
OradorExpedienteCrud, PainelView, OradorExpedienteCrud, PainelView,
@ -96,8 +96,6 @@ urlpatterns = [
include(TipoRetiradaPautaCrud.get_urls())), include(TipoRetiradaPautaCrud.get_urls())),
url(r'^sistema/bancada/', url(r'^sistema/bancada/',
include(BancadaCrud.get_urls())), include(BancadaCrud.get_urls())),
url(r'^sistema/bloco/',
include(BlocoCrud.get_urls())),
url(r'^sistema/cargo-bancada/', url(r'^sistema/cargo-bancada/',
include(CargoBancadaCrud.get_urls())), include(CargoBancadaCrud.get_urls())),
url(r'^sistema/resumo-ordenacao/', url(r'^sistema/resumo-ordenacao/',

14
sapl/sessao/views.py

@ -37,13 +37,13 @@ from sapl.sessao.apps import AppConfig
from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm
from sapl.utils import show_results_filter_set, remover_acentos, get_client_ip 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, ExpedienteForm, JustificativaAusenciaForm, OcorrenciaSessaoForm, ListMateriaForm,
MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet,
PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet, PresencaForm, ResumoOrdenacaoForm, SessaoPlenariaFilterSet,
SessaoPlenariaForm, VotacaoEditForm, VotacaoForm, SessaoPlenariaForm, VotacaoEditForm, VotacaoForm,
VotacaoNominalForm, RetiradaPautaForm, OradorOrdemDiaForm) VotacaoNominalForm, RetiradaPautaForm, OradorOrdemDiaForm)
from .models import (Bancada, Bloco, CargoBancada, CargoMesa, from .models import (Bancada, CargoBancada, CargoMesa,
ExpedienteMateria, ExpedienteSessao, OcorrenciaSessao, IntegranteMesa, ExpedienteMateria, ExpedienteSessao, OcorrenciaSessao, IntegranteMesa,
MateriaLegislativa, Orador, OradorExpediente, OrdemDia, MateriaLegislativa, Orador, OradorExpediente, OrdemDia,
PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao, PresencaOrdemDia, RegistroVotacao, ResumoOrdenacao,
@ -679,16 +679,6 @@ class BancadaCrud(CrudAux):
return reverse('sapl.sessao:bancada_list') 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): def recuperar_numero_sessao(request):
try: try:
sessao = SessaoPlenaria.objects.filter( sessao = SessaoPlenaria.objects.filter(

2
sapl/templates/menu_tabelas_auxiliares.yaml

@ -78,7 +78,7 @@
url: sapl.parlamentares:frente_list url: sapl.parlamentares:frente_list
css_class: btn btn-link css_class: btn btn-link
- title: {% trans 'Bloco Parlamentar' %} - title: {% trans 'Bloco Parlamentar' %}
url: sapl.sessao:bloco_list url: sapl.parlamentares:bloco_list
css_class: btn btn-link css_class: btn btn-link
- title: {% trans 'Módulo Proposições' %} - title: {% trans 'Módulo Proposições' %}
css_class: head_title css_class: head_title

7
sapl/templates/parlamentares/layouts.yaml

@ -127,3 +127,10 @@ Votante:
{% trans 'Votante' %}: {% trans 'Votante' %}:
- parlamentar user - parlamentar user
- data - data
Bloco:
{% trans 'Bloco' %}:
- nome
- data_criacao data_extincao
- partidos
- descricao

7
sapl/templates/sessao/layouts.yaml

@ -84,13 +84,6 @@ CargoBancada:
{% trans 'Cargo de Bancada' %}: {% trans 'Cargo de Bancada' %}:
- nome_cargo:8 cargo_unico - nome_cargo:8 cargo_unico
Bloco:
{% trans 'Bloco' %}:
- nome
- data_criacao data_extincao
- partidos
- descricao
TipoJustificativa: TipoJustificativa:
{% trans 'Tipo de Justificativa' %}: {% trans 'Tipo de Justificativa' %}:
- descricao - descricao

Loading…
Cancel
Save