|
@ -29,7 +29,7 @@ from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, |
|
|
PermissionRequiredForAppCrudMixin, make_pagination) |
|
|
PermissionRequiredForAppCrudMixin, make_pagination) |
|
|
from sapl.materia.forms import filtra_tramitacao_status |
|
|
from sapl.materia.forms import filtra_tramitacao_status |
|
|
from sapl.materia.models import (Autoria, TipoMateriaLegislativa, |
|
|
from sapl.materia.models import (Autoria, TipoMateriaLegislativa, |
|
|
Tramitacao, MateriaEmTramitacao) |
|
|
Tramitacao, MateriaEmTramitacao, Numeracao) |
|
|
from sapl.materia.views import MateriaLegislativaPesquisaView |
|
|
from sapl.materia.views import MateriaLegislativaPesquisaView |
|
|
from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, |
|
|
from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, |
|
|
Parlamentar, SessaoLegislativa) |
|
|
Parlamentar, SessaoLegislativa) |
|
@ -3355,38 +3355,21 @@ class PautaSessaoDetailView(DetailView): |
|
|
# ===================================================================== |
|
|
# ===================================================================== |
|
|
# Identificação Básica |
|
|
# Identificação Básica |
|
|
abertura = self.object.data_inicio.strftime('%d/%m/%Y') |
|
|
abertura = self.object.data_inicio.strftime('%d/%m/%Y') |
|
|
if self.object.data_fim: |
|
|
encerramento = self.object.data_fim.strftime('%d/%m/%Y') if self.object.data_fim else "" |
|
|
encerramento = self.object.data_fim.strftime('%d/%m/%Y') |
|
|
|
|
|
else: |
|
|
|
|
|
encerramento = "" |
|
|
|
|
|
|
|
|
|
|
|
hora_inicio = self.object.hora_inicio |
|
|
hora_inicio = self.object.hora_inicio |
|
|
hora_fim = self.object.hora_fim |
|
|
hora_fim = self.object.hora_fim |
|
|
|
|
|
|
|
|
context.update({'basica': [ |
|
|
context.update({ |
|
|
_('Tipo de Sessão: %(tipo)s') % {'tipo': self.object.tipo}, |
|
|
'basica': [ |
|
|
_('Abertura: %(abertura)s - %(hora_inicio)s') % { |
|
|
_(f'Tipo de Sessão: {self.object.tipo}'), |
|
|
'abertura': abertura, 'hora_inicio': hora_inicio}, |
|
|
_(f'Abertura: {abertura} - {hora_inicio}'), |
|
|
_('Encerramento: %(encerramento)s - %(hora_fim)s') % { |
|
|
_(f'Encerramento: {encerramento} - {hora_fim}') |
|
|
'encerramento': encerramento, 'hora_fim': hora_fim}, |
|
|
] |
|
|
]}) |
|
|
}) |
|
|
# ===================================================================== |
|
|
# ===================================================================== |
|
|
# Matérias Expediente |
|
|
# Matérias Expediente |
|
|
materias = ExpedienteMateria.objects.filter( |
|
|
|
|
|
sessao_plenaria_id=self.object.id) |
|
|
|
|
|
|
|
|
|
|
|
materias_expediente = [] |
|
|
materias_expediente = [] |
|
|
for m in materias: |
|
|
for m in ExpedienteMateria.objects.select_related("materia").filter(sessao_plenaria_id=self.object.id): |
|
|
ementa = m.materia.ementa |
|
|
|
|
|
titulo = m.materia |
|
|
|
|
|
numero = m.numero_ordem |
|
|
|
|
|
|
|
|
|
|
|
ultima_tramitacao = m.materia.tramitacao_set.last() |
|
|
|
|
|
|
|
|
|
|
|
situacao = ultima_tramitacao.status if ultima_tramitacao else None |
|
|
|
|
|
|
|
|
|
|
|
if situacao is None: |
|
|
|
|
|
situacao = _("Não informada") |
|
|
|
|
|
rv = m.registrovotacao_set.all() |
|
|
rv = m.registrovotacao_set.all() |
|
|
if rv: |
|
|
if rv: |
|
|
resultado = rv[0].tipo_resultado_votacao.nome |
|
|
resultado = rv[0].tipo_resultado_votacao.nome |
|
@ -3395,60 +3378,45 @@ class PautaSessaoDetailView(DetailView): |
|
|
resultado = _('Matéria não votada') |
|
|
resultado = _('Matéria não votada') |
|
|
resultado_observacao = _(' ') |
|
|
resultado_observacao = _(' ') |
|
|
|
|
|
|
|
|
autoria = Autoria.objects.filter(materia_id=m.materia_id) |
|
|
ultima_tramitacao = m.materia.tramitacao_set.last() |
|
|
autor = [str(x.autor) for x in autoria] |
|
|
numeracao = Numeracao.objects.filter(materia=m.materia).first() |
|
|
|
|
|
|
|
|
mat = {'id': m.materia_id, |
|
|
materias_expediente.append({ |
|
|
'ementa': ementa, |
|
|
'id': m.materia_id, |
|
|
'observacao': m.observacao, |
|
|
'ementa': m.materia.ementa, |
|
|
'titulo': titulo, |
|
|
'observacao': m.observacao, |
|
|
'numero': numero, |
|
|
'titulo': m.materia, |
|
|
'resultado': resultado, |
|
|
'numero': m.numero_ordem, |
|
|
'resultado_observacao': resultado_observacao, |
|
|
'resultado': resultado, |
|
|
'situacao': situacao, |
|
|
'resultado_observacao': resultado_observacao, |
|
|
'autor': autor |
|
|
'situacao': ultima_tramitacao.status if ultima_tramitacao else _("Não informada"), |
|
|
} |
|
|
'processo': f'{str(numeracao.numero_materia)}/{str(numeracao.ano_materia)}' if numeracao else '-', |
|
|
materias_expediente.append(mat) |
|
|
'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=m.materia_id)] |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
context.update({'materia_expediente': materias_expediente}) |
|
|
context.update({'materia_expediente': materias_expediente}) |
|
|
# ===================================================================== |
|
|
# ===================================================================== |
|
|
# Expedientes |
|
|
# Expedientes |
|
|
expediente = ExpedienteSessao.objects.filter( |
|
|
|
|
|
sessao_plenaria_id=self.object.id).order_by('tipo__ordenacao') |
|
|
|
|
|
|
|
|
|
|
|
expedientes = [] |
|
|
expedientes = [] |
|
|
for e in expediente: |
|
|
for e in ExpedienteSessao.objects.select_related("tipo").filter(sessao_plenaria_id=self.object.id)\ |
|
|
|
|
|
.order_by('tipo__ordenacao'): |
|
|
conteudo = e.conteudo |
|
|
conteudo = e.conteudo |
|
|
from sapl.relatorios.views import is_empty |
|
|
from sapl.relatorios.views import is_empty |
|
|
if not is_empty(conteudo): |
|
|
if not is_empty(conteudo): |
|
|
tipo = e.tipo |
|
|
tipo = e.tipo |
|
|
conteudo = sub(' ', ' ', conteudo) |
|
|
conteudo = sub(' ', ' ', conteudo) |
|
|
ex = {'tipo': tipo, 'conteudo': conteudo} |
|
|
expedientes.append({'tipo': tipo, 'conteudo': conteudo}) |
|
|
expedientes.append(ex) |
|
|
|
|
|
|
|
|
|
|
|
context.update({'expedientes': expedientes}) |
|
|
context.update({'expedientes': expedientes}) |
|
|
# ===================================================================== |
|
|
# ===================================================================== |
|
|
# Orador Expediente |
|
|
# Orador Expediente |
|
|
oradores = OradorExpediente.objects.filter( |
|
|
context.update({ |
|
|
sessao_plenaria_id=self.object.id).order_by('numero_ordem') |
|
|
'oradores': OradorExpediente.objects.filter(sessao_plenaria_id=self.object.id).order_by('numero_ordem') |
|
|
context.update({'oradores': oradores}) |
|
|
}) |
|
|
# ===================================================================== |
|
|
# ===================================================================== |
|
|
# Matérias Ordem do Dia |
|
|
# Matérias Ordem do Dia |
|
|
ordem = OrdemDia.objects.filter( |
|
|
|
|
|
sessao_plenaria_id=self.object.id) |
|
|
|
|
|
|
|
|
|
|
|
materias_ordem = [] |
|
|
materias_ordem = [] |
|
|
for o in ordem: |
|
|
for o in OrdemDia.objects.select_related("materia").filter(sessao_plenaria_id=self.object.id): |
|
|
ementa = o.materia.ementa |
|
|
|
|
|
titulo = o.materia |
|
|
|
|
|
numero = o.numero_ordem |
|
|
|
|
|
|
|
|
|
|
|
ultima_tramitacao = o.materia.tramitacao_set.last() |
|
|
|
|
|
|
|
|
|
|
|
situacao = ultima_tramitacao.status if ultima_tramitacao else None |
|
|
|
|
|
|
|
|
|
|
|
if situacao is None: |
|
|
|
|
|
situacao = _("Não informada") |
|
|
|
|
|
# Verificar resultado |
|
|
# Verificar resultado |
|
|
rv = o.registrovotacao_set.all() |
|
|
rv = o.registrovotacao_set.all() |
|
|
if rv: |
|
|
if rv: |
|
@ -3458,29 +3426,29 @@ class PautaSessaoDetailView(DetailView): |
|
|
resultado = _('Matéria não votada') |
|
|
resultado = _('Matéria não votada') |
|
|
resultado_observacao = _(' ') |
|
|
resultado_observacao = _(' ') |
|
|
|
|
|
|
|
|
autoria = Autoria.objects.filter( |
|
|
ultima_tramitacao = o.materia.tramitacao_set.last() |
|
|
materia_id=o.materia_id) |
|
|
numeracao = Numeracao.objects.filter(materia=m.materia).first() |
|
|
autor = [str(x.autor) for x in autoria] |
|
|
|
|
|
|
|
|
materias_ordem.append({ |
|
|
mat = {'id': o.materia_id, |
|
|
'id': o.materia_id, |
|
|
'ementa': ementa, |
|
|
'ementa': o.materia.ementa, |
|
|
'observacao': o.observacao, |
|
|
'observacao': o.observacao, |
|
|
'titulo': titulo, |
|
|
'titulo': o.materia, |
|
|
'numero': numero, |
|
|
'numero': o.numero_ordem, |
|
|
'resultado': resultado, |
|
|
'resultado': resultado, |
|
|
'resultado_observacao': resultado_observacao, |
|
|
'resultado_observacao': resultado_observacao, |
|
|
'situacao': situacao, |
|
|
'situacao': ultima_tramitacao.status if ultima_tramitacao else _("Não informada"), |
|
|
'autor': autor |
|
|
'processo': f'{str(numeracao.numero_materia)}/{str(numeracao.ano_materia)}' if numeracao else '-', |
|
|
} |
|
|
'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=o.materia_id)] |
|
|
materias_ordem.append(mat) |
|
|
}) |
|
|
|
|
|
|
|
|
context.update({'materias_ordem': materias_ordem}) |
|
|
|
|
|
context.update({'subnav_template_name': 'sessao/pauta_subnav.yaml'}) |
|
|
|
|
|
|
|
|
|
|
|
is_pdf = True if request.build_absolute_uri().split( |
|
|
context.update({ |
|
|
'/')[-1] == 'pdf' else False |
|
|
'materias_ordem': materias_ordem, |
|
|
|
|
|
'subnav_template_name': 'sessao/pauta_subnav.yaml' |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
if is_pdf: |
|
|
# Verifica se é um PDF |
|
|
|
|
|
if request.build_absolute_uri().split('/')[-1] == 'pdf': |
|
|
return relatorio_pauta_sessao_weasy(self, request, context) |
|
|
return relatorio_pauta_sessao_weasy(self, request, context) |
|
|
else: |
|
|
else: |
|
|
return self.render_to_response(context) |
|
|
return self.render_to_response(context) |
|
|