Browse Source

Adicionando multimídia em relatorio de sessao plenaria (#3128)

* Adicionando multimídia em relatorio de sessao plenaria

* Movendo campo multimidia para cima

* Mais alguns ajustes no layout

* Ajusta tamanho de conteúdo multimídia

* Adiciona seções faltantes

* Retornando botão de relatorio antigo

* ajustes layout

* Adiciona ordenação

* Comentando botão impressão antiga

Co-authored-by: Edward Ribeiro <eribeiro@interlegis.leg.br>
pull/3131/head
Ulysses Lara 5 years ago
committed by Edward Ribeiro
parent
commit
931720037b
  1. 142
      sapl/relatorios/views.py
  2. 1
      sapl/static/sapl/css/relatorio.css
  3. 2
      sapl/templates/relatorios/base_relatorio.html
  4. 3
      sapl/templates/relatorios/blocos_sessao_plenaria/conteudo_multimidia.html
  5. 5
      sapl/templates/relatorios/blocos_sessao_plenaria/expedientes.html
  6. 4
      sapl/templates/relatorios/blocos_sessao_plenaria/identificacao_basica.html
  7. 21
      sapl/templates/relatorios/blocos_sessao_plenaria/justificativa_ausencia_sessao.html
  8. 6
      sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_ordemdia.html
  9. 4
      sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_sessao.html
  10. 27
      sapl/templates/relatorios/blocos_sessao_plenaria/materias_expediente.html
  11. 27
      sapl/templates/relatorios/blocos_sessao_plenaria/materias_ordemdia.html
  12. 4
      sapl/templates/relatorios/blocos_sessao_plenaria/mesa_diretora.html
  13. 4
      sapl/templates/relatorios/blocos_sessao_plenaria/ocorrencias_sessao.html
  14. 7
      sapl/templates/relatorios/blocos_sessao_plenaria/oradores_expediente.html
  15. 8
      sapl/templates/relatorios/blocos_sessao_plenaria/oradores_explicacoes.html
  16. 7
      sapl/templates/relatorios/blocos_sessao_plenaria/oradores_ordemdia.html
  17. 27
      sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_expediente.html
  18. 27
      sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_ordemdia.html
  19. 162
      sapl/templates/relatorios/relatorio_sessao_plenaria.html
  20. 10
      sapl/templates/sessao/resumo.html

142
sapl/relatorios/views.py

@ -4,7 +4,6 @@ import logging
import re import re
import tempfile import tempfile
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.http import Http404, HttpResponse from django.http import Http404, HttpResponse
from django.utils import timezone from django.utils import timezone
@ -25,7 +24,7 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao,
Orador, OradorExpediente, Orador, OradorExpediente,
OrdemDia, PresencaOrdemDia, SessaoPlenaria, OrdemDia, PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, OcorrenciaSessao, SessaoPlenariaPresenca, OcorrenciaSessao,
RegistroVotacao, VotoParlamentar, OradorOrdemDia, TipoExpediente) RegistroVotacao, VotoParlamentar, OradorOrdemDia, TipoExpediente, ResumoOrdenacao)
from sapl.settings import STATIC_ROOT from sapl.settings import STATIC_ROOT
from sapl.utils import LISTA_DE_UFS, TrocaTag, filiacao_data from sapl.utils import LISTA_DE_UFS, TrocaTag, filiacao_data
@ -58,7 +57,6 @@ def get_kwargs_params(request, fields):
def get_cabecalho(casa): def get_cabecalho(casa):
cabecalho = {} cabecalho = {}
cabecalho["nom_casa"] = casa.nome cabecalho["nom_casa"] = casa.nome
uf_dict = dict(LISTA_DE_UFS) uf_dict = dict(LISTA_DE_UFS)
@ -74,7 +72,6 @@ def get_imagem(casa):
def get_rodape(casa): def get_rodape(casa):
if len(casa.cep) == 8: if len(casa.cep) == 8:
cep = casa.cep[:4] + "-" + casa.cep[5:] cep = casa.cep[:4] + "-" + casa.cep[5:]
else: else:
@ -110,7 +107,6 @@ def get_rodape(casa):
def get_materias(mats): def get_materias(mats):
materias = [] materias = []
for materia in mats: for materia in mats:
dic = {} dic = {}
@ -294,7 +290,6 @@ def relatorio_capa_processo(request):
def get_ordem_dia(ordem, sessao): def get_ordem_dia(ordem, sessao):
# TODO: fazer implementação de ordem dia # TODO: fazer implementação de ordem dia
pass pass
@ -361,7 +356,6 @@ def relatorio_documento_administrativo(request):
def get_documento_administrativo(docs): def get_documento_administrativo(docs):
documentos = [] documentos = []
for d in docs: for d in docs:
dic = {} dic = {}
@ -505,7 +499,6 @@ def remove_html_comments(text):
def get_sessao_plenaria(sessao, casa): def get_sessao_plenaria(sessao, casa):
inf_basicas_dic = {} inf_basicas_dic = {}
inf_basicas_dic["num_sessao_plen"] = str(sessao.numero) inf_basicas_dic["num_sessao_plen"] = str(sessao.numero)
inf_basicas_dic["nom_sessao"] = sessao.tipo.nome inf_basicas_dic["nom_sessao"] = sessao.tipo.nome
@ -742,7 +735,6 @@ def get_sessao_plenaria(sessao, casa):
numeracao = materia.numeracao_set.first() numeracao = materia.numeracao_set.first()
if numeracao: if numeracao:
dic_votacao["des_numeracao"] = ( dic_votacao["des_numeracao"] = (
str(numeracao.numero_materia) + str(numeracao.numero_materia) +
'/' + '/' +
@ -973,7 +965,6 @@ def relatorio_sessao_plenaria(request, pk):
def get_protocolos(prots): def get_protocolos(prots):
protocolos = [] protocolos = []
for protocolo in prots: for protocolo in prots:
dic = {} dic = {}
@ -1090,7 +1081,6 @@ def relatorio_etiqueta_protocolo(request, nro, ano):
def get_etiqueta_protocolos(prots): def get_etiqueta_protocolos(prots):
protocolos = [] protocolos = []
for p in prots: for p in prots:
dic = {} dic = {}
@ -1172,7 +1162,6 @@ def relatorio_pauta_sessao(request, pk):
def get_pauta_sessao(sessao, casa): def get_pauta_sessao(sessao, casa):
inf_basicas_dic = {} inf_basicas_dic = {}
inf_basicas_dic["nom_sessao"] = sessao.tipo.nome inf_basicas_dic["nom_sessao"] = sessao.tipo.nome
inf_basicas_dic["num_sessao_plen"] = sessao.numero inf_basicas_dic["num_sessao_plen"] = sessao.numero
@ -1280,7 +1269,8 @@ def get_pauta_sessao(sessao, casa):
inf_basicas_dic, inf_basicas_dic,
expedientes) expedientes)
def make_pdf(base_url,main_template,header_template,main_css='',header_css=''):
def make_pdf(base_url, main_template, header_template, main_css='', header_css=''):
html = HTML(base_url=base_url, string=main_template) html = HTML(base_url=base_url, string=main_template)
main_doc = html.render(stylesheets=[]) main_doc = html.render(stylesheets=[])
@ -1291,7 +1281,7 @@ def make_pdf(base_url,main_template,header_template,main_css='',header_css=''):
return get_page_body(box.all_children()) return get_page_body(box.all_children())
# Template of header # Template of header
html = HTML(base_url=base_url,string=header_template) html = HTML(base_url=base_url, string=header_template)
header = html.render(stylesheets=[CSS(string='@page {size:A4; margin:1cm;}')]) header = html.render(stylesheets=[CSS(string='@page {size:A4; margin:1cm;}')])
header_page = header.pages[0] header_page = header.pages[0]
@ -1307,7 +1297,7 @@ def make_pdf(base_url,main_template,header_template,main_css='',header_css=''):
return pdf_file return pdf_file
def resumo_ata_pdf(request,pk): def resumo_ata_pdf(request, pk):
base_url = request.build_absolute_uri() base_url = request.build_absolute_uri()
casa = CasaLegislativa.objects.first() casa = CasaLegislativa.objects.first()
rodape = ' '.join(get_rodape(casa)) rodape = ' '.join(get_rodape(casa))
@ -1330,12 +1320,12 @@ def resumo_ata_pdf(request,pk):
context.update({'object': sessao_plenaria}) context.update({'object': sessao_plenaria})
context.update({'data': dt.today().strftime('%d/%m/%Y')}) context.update({'data': dt.today().strftime('%d/%m/%Y')})
context.update({'rodape': rodape}) context.update({'rodape': rodape})
header_context = {"casa": casa, 'logotipo':casa.logotipo, 'MEDIA_URL': MEDIA_URL} header_context = {"casa": casa, 'logotipo': casa.logotipo, 'MEDIA_URL': MEDIA_URL}
html_template = render_to_string('relatorios/relatorio_ata.html', context) html_template = render_to_string('relatorios/relatorio_ata.html', context)
html_header = render_to_string('relatorios/header_ata.html', header_context) html_header = render_to_string('relatorios/header_ata.html', header_context)
pdf_file = make_pdf(base_url=base_url,main_template=html_template,header_template=html_header) pdf_file = make_pdf(base_url=base_url, main_template=html_template, header_template=html_header)
response = HttpResponse(content_type='application/pdf;') response = HttpResponse(content_type='application/pdf;')
response['Content-Disposition'] = 'inline; filename=relatorio.pdf' response['Content-Disposition'] = 'inline; filename=relatorio.pdf'
@ -1344,6 +1334,7 @@ def resumo_ata_pdf(request,pk):
return response return response
def cria_relatorio(request, context, html_string, header_info=""): def cria_relatorio(request, context, html_string, header_info=""):
base_url = request.build_absolute_uri() base_url = request.build_absolute_uri()
casa = CasaLegislativa.objects.first() casa = CasaLegislativa.objects.first()
@ -1366,62 +1357,80 @@ def cria_relatorio(request, context, html_string, header_info=""):
return response return response
def relatorio_doc_administrativos(request, context): def relatorio_doc_administrativos(request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_doc_administrativos.html') return cria_relatorio(request, context, 'relatorios/relatorio_doc_administrativos.html')
def relatorio_materia_em_tramitacao(obj, request, context): def relatorio_materia_em_tramitacao(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_materias_em_tramitacao.html') return cria_relatorio(request, context, 'relatorios/relatorio_materias_em_tramitacao.html')
def relatorio_materia_por_autor(obj, request, context): def relatorio_materia_por_autor(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_materias_por_autor.html') return cria_relatorio(request, context, 'relatorios/relatorio_materias_por_autor.html')
def relatorio_materia_por_ano_autor(obj, request, context): def relatorio_materia_por_ano_autor(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_materias_por_ano_autor.html') return cria_relatorio(request, context, 'relatorios/relatorio_materias_por_ano_autor.html')
def relatorio_presenca_sessao(obj, request, context): def relatorio_presenca_sessao(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_presenca_sessao.html') return cria_relatorio(request, context, 'relatorios/relatorio_presenca_sessao.html')
def relatorio_atas(obj, request, context): def relatorio_atas(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_atas.html') return cria_relatorio(request, context, 'relatorios/relatorio_atas.html')
def relatorio_historico_tramitacao(obj, request, context): def relatorio_historico_tramitacao(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_historico_tramitacao.html') return cria_relatorio(request, context, 'relatorios/relatorio_historico_tramitacao.html')
def relatorio_fim_prazo_tramitacao(obj, request, context): def relatorio_fim_prazo_tramitacao(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_fim_prazo_tramitacao.html') return cria_relatorio(request, context, 'relatorios/relatorio_fim_prazo_tramitacao.html')
def relatorio_reuniao(obj, request, context): def relatorio_reuniao(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_reuniao.html') return cria_relatorio(request, context, 'relatorios/relatorio_reuniao.html')
def relatorio_audiencia(obj, request, context): def relatorio_audiencia(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_audiencia.html') return cria_relatorio(request, context, 'relatorios/relatorio_audiencia.html')
def relatorio_normas_mes(obj, request, context): def relatorio_normas_mes(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_normas_mes.html') return cria_relatorio(request, context, 'relatorios/relatorio_normas_mes.html')
def relatorio_normas_vigencia(obj, request, context): def relatorio_normas_vigencia(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_normas_vigencia.html') return cria_relatorio(request, context, 'relatorios/relatorio_normas_vigencia.html')
def relatorio_historico_tramitacao_adm(obj, request, context): def relatorio_historico_tramitacao_adm(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_historico_tramitacao_adm.html') return cria_relatorio(request, context, 'relatorios/relatorio_historico_tramitacao_adm.html')
def relatorio_estatisticas_acesso_normas(obj, request, context): def relatorio_estatisticas_acesso_normas(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_estatisticas_acesso_normas.html') return cria_relatorio(request, context, 'relatorios/relatorio_estatisticas_acesso_normas.html')
def relatorio_documento_acessorio(obj, request, context): def relatorio_documento_acessorio(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_documento_acessorio.html') return cria_relatorio(request, context, 'relatorios/relatorio_documento_acessorio.html')
def relatorio_normas_por_autor(obj, request, context): def relatorio_normas_por_autor(obj, request, context):
return cria_relatorio(request, context, 'relatorios/relatorio_normas_por_autor.html') return cria_relatorio(request, context, 'relatorios/relatorio_normas_por_autor.html')
def relatorio_pauta_sessao_weasy(obj, request, context): def relatorio_pauta_sessao_weasy(obj, request, context):
sessao = context['object'] sessao = context['object']
info = "Pauta da {} ({} - {}) Legislatura".format(sessao,sessao.legislatura.data_inicio.year,sessao.legislatura.data_fim.year) info = "Pauta da {} ({} - {}) Legislatura".format(sessao, sessao.legislatura.data_inicio.year,
return cria_relatorio(request, context, 'relatorios/relatorio_pauta_sessao.html',info) sessao.legislatura.data_fim.year)
return cria_relatorio(request, context, 'relatorios/relatorio_pauta_sessao.html', info)
def relatorio_sessao_plenaria_pdf(request, pk): def relatorio_sessao_plenaria_pdf(request, pk):
base_url=request.build_absolute_uri() base_url = request.build_absolute_uri()
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
username = request.user.username username = request.user.username
casa = CasaLegislativa.objects.first() casa = CasaLegislativa.objects.first()
@ -1456,23 +1465,83 @@ def relatorio_sessao_plenaria_pdf(request, pk):
lst_oradores, lst_oradores,
lst_ocorrencias) = get_sessao_plenaria(sessao, casa) lst_ocorrencias) = get_sessao_plenaria(sessao, casa)
html_template = render_to_string('relatorios/relatorio_sessao_plenaria.html', dict_ord_template = {
{ 'cont_mult': 'conteudo_multimidia.html',
"inf_basicas_dic":inf_basicas_dic, 'exp': 'expedientes.html',
"lst_mesa":lst_mesa, 'id_basica': 'identificacao_basica.html',
"lst_presenca_sessao":lst_presenca_sessao, 'lista_p': 'lista_presenca_sessao.html',
"lst_ausencia_sessao":lst_ausencia_sessao, 'lista_p_o_d': 'lista_presenca_ordemdia.html',
"lst_expedientes":lst_expedientes, 'mat_exp': 'materias_expediente.html',
"lst_expediente_materia":lst_expediente_materia, 'v_n_mat_exp': 'votos_nominais_expediente.html',
"lst_oradores_expediente":lst_oradores_expediente, 'mat_o_d': 'materias_ordemdia.html',
"lst_presenca_ordem_dia":lst_presenca_ordem_dia, 'v_n_mat_o_d': 'votos_nominais_ordemdia.html',
"lst_votacao":lst_votacao, 'mesa_d': 'mesa_diretora.html',
"lst_oradores":lst_oradores, 'oradores_exped': 'oradores_expediente.html',
"lst_ocorrencias":lst_ocorrencias, 'oradores_o_d': 'oradores_ordemdia.html',
"rodape":rodape, 'oradores_expli': 'oradores_explicacoes.html',
'ocorr_sessao': 'ocorrencias_sessao.html'
}
context = {
"inf_basicas_dic": inf_basicas_dic,
"cont_mult_dic": cont_mult_dic,
"lst_mesa": lst_mesa,
"lst_expediente_materia_vot_nom": lst_expediente_materia_vot_nom,
"lst_presenca_sessao": lst_presenca_sessao,
"lst_ausencia_sessao": lst_ausencia_sessao,
"lst_expedientes": lst_expedientes,
"lst_expediente_materia": lst_expediente_materia,
"lst_oradores_expediente": lst_oradores_expediente,
"lst_presenca_ordem_dia": lst_presenca_ordem_dia,
"lst_votacao": lst_votacao,
"lst_oradores_ordemdia": lst_oradores_ordemdia,
"lst_votacao_vot_nom": lst_votacao_vot_nom,
"lst_oradores": lst_oradores,
"lst_ocorrencias": lst_ocorrencias,
"rodape": rodape,
"data": dt.today().strftime('%d/%m/%Y') "data": dt.today().strftime('%d/%m/%Y')
}
ordenacao = ResumoOrdenacao.objects.get_or_create()[0]
try:
context.update({
'primeiro_ordenacao': dict_ord_template[ordenacao.primeiro],
'segundo_ordenacao': dict_ord_template[ordenacao.segundo],
'terceiro_ordenacao': dict_ord_template[ordenacao.terceiro],
'quarto_ordenacao': dict_ord_template[ordenacao.quarto],
'quinto_ordenacao': dict_ord_template[ordenacao.quinto],
'sexto_ordenacao': dict_ord_template[ordenacao.sexto],
'setimo_ordenacao': dict_ord_template[ordenacao.setimo],
'oitavo_ordenacao': dict_ord_template[ordenacao.oitavo],
'nono_ordenacao': dict_ord_template[ordenacao.nono],
'decimo_ordenacao': dict_ord_template[ordenacao.decimo],
'decimo_primeiro_ordenacao': dict_ord_template[ordenacao.decimo_primeiro],
'decimo_segundo_ordenacao': dict_ord_template[ordenacao.decimo_segundo],
'decimo_terceiro_ordenacao': dict_ord_template[ordenacao.decimo_terceiro],
'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto]
})
except KeyError as e:
# self.logger.error("KeyError: " + str(e) + ". Erro ao tentar utilizar "
# "configuração de ordenação. Utilizando ordenação padrão.")
context.update({
'primeiro_ordenacao': 'identificacao_basica.html',
'segundo_ordenacao': 'conteudo_multimidia.html',
'terceiro_ordenacao': 'mesa_diretora.html',
'quarto_ordenacao': 'lista_presenca_sessao.html',
'quinto_ordenacao': 'expedientes.html',
'sexto_ordenacao': 'materias_expediente.html',
'setimo_ordenacao': 'votos_nominais_expediente.html',
'oitavo_ordenacao': 'oradores_expediente.html',
'nono_ordenacao': 'lista_presenca_ordemdia.html',
'decimo_ordenacao': 'materias_ordemdia.html',
'decimo_primeiro_ordenacao': 'votos_nominais_ordemdia.html',
'decimo_segundo_ordenacao': 'oradores_ordemdia.html',
'decimo_terceiro_ordenacao': 'oradores_explicacoes.html',
'decimo_quarto_ordenacao': 'ocorrencias_sessao.html'
}) })
html_template = render_to_string('relatorios/relatorio_sessao_plenaria.html', context)
info = "Resumo da {}ª Reunião {} \ info = "Resumo da {}ª Reunião {} \
da {}ª Sessão Legislativa da {} \ da {}ª Sessão Legislativa da {} \
Legislatura".format(inf_basicas_dic['num_sessao_plen'], Legislatura".format(inf_basicas_dic['num_sessao_plen'],
@ -1481,10 +1550,10 @@ def relatorio_sessao_plenaria_pdf(request, pk):
inf_basicas_dic['num_legislatura'] inf_basicas_dic['num_legislatura']
) )
html_header = render_to_string('relatorios/header_ata.html',{"casa":casa, html_header = render_to_string('relatorios/header_ata.html', {"casa": casa,
"MEDIA_URL": MEDIA_URL, "MEDIA_URL": MEDIA_URL,
"logotipo": casa.logotipo, "logotipo": casa.logotipo,
"info":info}) "info": info})
pdf_file = make_pdf(base_url=base_url, main_template=html_template, header_template=html_header) pdf_file = make_pdf(base_url=base_url, main_template=html_template, header_template=html_header)
@ -1494,4 +1563,3 @@ def relatorio_sessao_plenaria_pdf(request, pk):
response.write(pdf_file) response.write(pdf_file)
return response return response

1
sapl/static/sapl/css/relatorio.css

@ -38,6 +38,7 @@ html body section dl {
html body section dt{ html body section dt{
width: 50px; width: 50px;
text-align: left;
} }
html body section dd { html body section dd {

2
sapl/templates/relatorios/base_relatorio.html

@ -8,7 +8,7 @@
<style> <style>
@page{ @page{
@bottom-right { @bottom-right {
content: "Página" counter(page); content: "Página " counter(page);
height: 3cm; height: 3cm;
font-size: 8pt; font-size: 8pt;
} }

3
sapl/templates/relatorios/blocos_sessao_plenaria/conteudo_multimidia.html

@ -0,0 +1,3 @@
<h2 class="gray-title">Conteúdo Multimídia</h2>
<p><b>Multimídia Audio:</b> {{cont_mult_dic.multimidia_audio}}</p>
<p><b>Multimídia Video:</b> {{cont_mult_dic.multimidia_video}}</p>

5
sapl/templates/relatorios/blocos_sessao_plenaria/expedientes.html

@ -0,0 +1,5 @@
<h2 class="gray-title">Expedientes</h2>
{% for expediente in lst_expedientes%}
<h3>{{expediente.nom_expediente}}</h3>
<p style="margin-bottom: 1cm">{{expediente.txt_expediente|safe}}</p>
{% endfor%}

4
sapl/templates/relatorios/blocos_sessao_plenaria/identificacao_basica.html

@ -0,0 +1,4 @@
<h2 class="gray-title">Informações Básicas</h2>
<p><b>Tipo da Sessão:</b> {{inf_basicas_dic.nom_sessao}}</p>
<p><b>Abertura:</b> {{inf_basicas_dic.dat_inicio_sessao}} - {{inf_basicas_dic.hr_inicio_sessao}}</p>
<p><b>Encerramento:</b> {{inf_basicas_dic.dat_fim_sessao}} - {{inf_basicas_dic.hr_fim_sessao}}</p>

21
sapl/templates/relatorios/blocos_sessao_plenaria/justificativa_ausencia_sessao.html

@ -0,0 +1,21 @@
<h2 class="gray-title">Justificativas de Ausência da Sessão</h2>
<table class="grayTable">
<thead>
<tr>
<th>Parlamentar</th>
<th>Justificativa</th>
<th>Ausente em</th>
</tr>
</thead>
<tbody>
{% for ausencia in lst_ausencia_sessao%}
<tr>
<td>{{ausencia.parlamentar}}</td>
<td>{{ausencia.justificativa}}</td>
<td>{{ausencia.tipo}}</td>
</tr>
{% endfor %}
</tbody>
</table>

6
sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_ordemdia.html

@ -0,0 +1,6 @@
<h2 class="gray-title">Lista de Presença da Ordem do Dia</h2>
{% for orador in lst_presenca_ordem_dia%}
<tr>
<p>{{orador.nom_parlamentar}}/{{orador.sgl_partido}}</p>
</tr>
{% endfor %}

4
sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_sessao.html

@ -0,0 +1,4 @@
<h2 class="gray-title">Lista de Presença da Sessão</h2>
{% for membro in lst_presenca_sessao%}
<p>{{membro.nom_parlamentar}}/{{membro.sgl_partido}}</p>
{% endfor%}

27
sapl/templates/relatorios/blocos_sessao_plenaria/materias_expediente.html

@ -0,0 +1,27 @@
<h2 class="gray-title">Matérias do Expediente</h2>
<table class="grayTable">
<thead>
<tr>
<th>Matéria</th>
<th>Ementa</th>
<th>Resultado da Votação</th>
</tr>
</thead>
<tbody>
{% for materia in lst_expediente_materia%}
<tr>
<td >
<dl>
<dt><b>{{materia.num_ordem}} -</b> {{materia.id_materia}}</dt>
<dt style="text-align: left;"><b>Turno:</b> {{materia.des_turno}}</dt>
<dt style="text-align: left;"><b>{{materia.num_autores}}: </b>{{materia.nom_autor}}</dt>
</dl>
</td>
<td style="width:60%"><div style="margin:10px">{{materia.txt_ementa}}</div></td>
<td style="text-align: center">&nbsp;<b>{{materia.nom_resultado}}</b></td>
</tr>
{% endfor %}
</tbody>
</table>

27
sapl/templates/relatorios/blocos_sessao_plenaria/materias_ordemdia.html

@ -0,0 +1,27 @@
<h2 class="gray-title">Matérias da Ordem do Dia</h2>
<table class="grayTable" style="height: 145px;" width="443">
<thead>
<tr>
<th>Matéria</th>
<th>Ementa</th>
<th>Resultado da Votação</th>
</tr>
</thead>
<tbody>
{% for materia in lst_votacao%}
<tr>
<td>
<dl>
<dt><b>{{materia.num_ordem}} -</b> {{materia.id_materia}}</dt>
<dt style="text-align: left;"><b>Turno:</b> {{materia.des_turno}}</dt>
<dt style="text-align: left;"><b>{{materia.num_autores}}: </b>{{materia.nom_autor}}</dt>
</dl>
</td>
<td style="width:60%">{{materia.txt_ementa}}</td>
<td style="text-align: center;">&nbsp;<b>{{materia.nom_resultado}}</b></td>
</tr>
{% endfor %}
</tbody>
</table>

4
sapl/templates/relatorios/blocos_sessao_plenaria/mesa_diretora.html

@ -0,0 +1,4 @@
<h2 class="gray-title">Mesa Diretora</h2>
{% for membro in lst_mesa%}
<p><b>{{membro.des_cargo}}:</b> {{membro.nom_parlamentar}}/{{membro.sgl_partido}}</p>
{% endfor%}

4
sapl/templates/relatorios/blocos_sessao_plenaria/ocorrencias_sessao.html

@ -0,0 +1,4 @@
<h2 class="gray-title">Ocorrências da Sessão</h2>
{% for ocorrencia in lst_ocorrencias%}
<p>{{ocorrencia}}</p>
{% endfor %}

7
sapl/templates/relatorios/blocos_sessao_plenaria/oradores_expediente.html

@ -0,0 +1,7 @@
<h2 class="gray-title">Oradores do Expediente</h2>
{% for orador in lst_oradores_expediente%}
<tr>
<p> <b>{{orador.num_ordem}}</b> - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}</p>
</tr>
{% endfor %}

8
sapl/templates/relatorios/blocos_sessao_plenaria/oradores_explicacoes.html

@ -0,0 +1,8 @@
<div>
<h2 class="gray-title">Oradores das Explicações Pessoais</h2>
{% for orador in lst_oradores%}
<tr>
<p style="page-break-after: avoid;">{{orador.num_ordem}} - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}</p>
</tr>
{% endfor %}
</div>

7
sapl/templates/relatorios/blocos_sessao_plenaria/oradores_ordemdia.html

@ -0,0 +1,7 @@
{% if lst_oradores_ordemdia %}
<h2 class="gray-title">Oradores da Ordem do Dia</h2>
{% for orador_ordemdia in lst_oradores_ordemdia %}
<p><b>{{orador_ordemdia.num_ordem}}</b> - {{orador_ordemdia.nome_parlamentar}}/{{orador_ordemdia.sigla}}
{%if orador_ordemdia.observacao%}- {{orador_ordemdia.observacao}}{%endif%}</p>
{% endfor %}
{% endif %}

27
sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_expediente.html

@ -0,0 +1,27 @@
{% if lst_votacao_vot_nom %}
<h2 class="gray-title">Votações Nominais - Matérias do Expediente</h2>
<table class="grayTable">
<thead>
<tr>
<th>Matéria</th>
<th>Votos</th>
</tr>
</thead>
{% for expediente_materia_vot_nom in lst_expediente_materia_vot_nom %}
<tr>
<td>{{expediente_materia_vot_nom.titulo}}</td>
<td>
{% if expediente_materia_vot_nom.votos %}
<dl>
{% for v in expediente_materia_vot_nom.votos %}
<dt style="text-align: left;">&nbsp;<b>{{v.parlamentar}}</b> {{v.voto}}</dt>
{% endfor %}
</dl>
{% else %}
<td><p><b>Matéria não votada</b></p></td>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% endif %}

27
sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_ordemdia.html

@ -0,0 +1,27 @@
{% if lst_votacao_vot_nom %}
<h2 class="gray-title">Votações Nominais - Matérias da Ordem do Dia</h2>
<table class="grayTable">
<thead>
<tr>
<th>Matéria</th>
<th>Votos</th>
</tr>
</thead>
{% for votacao_vot_nom in lst_votacao_vot_nom %}
<tr>
<td>{{votacao_vot_nom.titulo}}</td>
<td>
{% if votacao_vot_nom.votos %}
<dl>
{% for v in votacao_vot_nom.votos %}
<dt style="text-align: left;">&nbsp;<b>{{v.parlamentar}}</b> {{v.voto}}</dt>
{% endfor %}
</dl>
{% else %}
<td><p><b>Matéria não votada</b></p></td>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% endif %}

162
sapl/templates/relatorios/relatorio_sessao_plenaria.html

@ -3,137 +3,37 @@
{% block content %} {% block content %}
<div style="margin-bottom: 3cm"> <div style="margin-bottom: 3cm">
<h2 class="gray-title">Informações Básicas</h2>
<p><b>Tipo da Sessão:</b> {{inf_basicas_dic.nom_sessao}}</p> {% include 'relatorios/blocos_sessao_plenaria/'|add:primeiro_ordenacao %}
<p><b>Abertura:</b> {{inf_basicas_dic.dat_inicio_sessao}} - {{inf_basicas_dic.hr_inicio_sessao}}</p>
<p><b>Encerramento:</b> {{inf_basicas_dic.dat_fim_sessao}} - {{inf_basicas_dic.hr_fim_sessao}}</p> {% include 'relatorios/blocos_sessao_plenaria/'|add:segundo_ordenacao %}
<h2 class="gray-title">Mesa Diretora</h2> {% include 'relatorios/blocos_sessao_plenaria/'|add:terceiro_ordenacao %}
{% for membro in lst_mesa%}
<p><b>{{membro.des_cargo}}:</b> {{membro.nom_parlamentar}}/{{membro.sgl_partido}}</p> {% include 'relatorios/blocos_sessao_plenaria/'|add:quarto_ordenacao %}
{% endfor%}
{% include 'relatorios/blocos_sessao_plenaria/'|add:quinto_ordenacao %}
<h2 class="gray-title">Lista de Presença da Sessão</h2>
{% for membro in lst_presenca_sessao%} {% include 'relatorios/blocos_sessao_plenaria/'|add:sexto_ordenacao %}
<p>{{membro.nom_parlamentar}}/{{membro.sgl_partido}}</p>
{% endfor%} {% include 'relatorios/blocos_sessao_plenaria/'|add:setimo_ordenacao %}
<h2 class="gray-title">Justificativas de Ausência da Sessão</h2> {% include 'relatorios/blocos_sessao_plenaria/'|add:oitavo_ordenacao %}
<table class="grayTable"> {% include 'relatorios/blocos_sessao_plenaria/'|add:nono_ordenacao %}
<thead>
<tr> {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_ordenacao %}
<th>Parlamentar</th>
<th>Justificativa</th> {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_primeiro_ordenacao %}
<th>Ausente em</th>
</tr> {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_segundo_ordenacao %}
</thead>
<tbody> {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_terceiro_ordenacao %}
{% for ausencia in lst_ausencia_sessao%}
<tr> {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_quarto_ordenacao %}
<td>{{ausencia.parlamentar}}</td>
<td>{{ausencia.justificativa}}</td> </div>
<td>{{ausencia.tipo}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<h2 class="gray-title">Expedientes</h2>
{% for expediente in lst_expedientes%}
<h3>{{expediente.nom_expediente}}</h3>
<p style="margin-bottom: 1cm">{{expediente.txt_expediente|safe}}</p>
{% endfor%}
<h2 class="gray-title">Matérias do Expediente</h2>
<table class="grayTable">
<thead>
<tr>
<th>Matéria</th>
<th>Ementa</th>
<th>Resultado da Votação</th>
</tr>
</thead>
<tbody>
{% for materia in lst_expediente_materia%}
<tr>
<td style="width:300px">
<dl>
<dt><b>{{materia.num_ordem}} -</b> {{materia.id_materia}}</dt>
<dt><b>Turno:</b> {{materia.des_turno}}</dt>
<dt><b>{{materia.num_autores}}: </b>{{materia.nom_autor}}</dt>
</dl>
</td>
<td><div style="margin:10px">{{materia.txt_ementa}}</div></td>
<td style="width:10px"><b>{{materia.nom_resultado}}</b></td>
</tr>
{% endfor %}
</tbody>
</table>
<h2 class="gray-title">Oradores do Expediente</h2>
{% for orador in lst_oradores_expediente%}
<tr>
<p> <b>{{orador.num_ordem}}</b> - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}</p>
</tr>
{% endfor %}
<h2 class="gray-title">Lista de Presença da Ordem do Dia</h2>
{% for orador in lst_presenca_ordem_dia%}
<tr>
<p>{{orador.nom_parlamentar}}/{{orador.sgl_partido}}</p>
</tr>
{% endfor %}
<h2 class="gray-title">Matérias da Ordem do Dia</h2>
<table class="grayTable" style="height: 145px;" width="443">
<thead>
<tr>
<th>Matéria</th>
<th>Ementa</th>
<th>Resultado da Votação</th>
</tr>
</thead>
<tbody>
{% for materia in lst_votacao%}
<tr>
<td style="width:300px">
<dl>
<dt><b>{{materia.num_ordem}} -</b> {{materia.id_materia}}</dt>
<dt><b>Turno:</b> {{materia.des_turno}}</dt>
<dt><b>{{materia.num_autores}}: </b>{{materia.nom_autor}}</dt>
</dl>
</td>
<td><div style="margin:10px">{{materia.txt_ementa}}</div></td>
<td style="width:30px"><b>{{materia.nom_resultado}}</b></td>
</tr>
{% endfor %}
</tbody>
</table>
<div>
<h2 class="gray-title">Oradores das Explicações Pessoais</h2>
{% for orador in lst_oradores%}
<tr>
<p style="page-break-after: avoid;">{{orador.num_ordem}} - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}</p>
</tr>
{% endfor %}
</div>
<h2 class="gray-title">Ocorrências da Sessão</h2>
{% for ocorrencia in lst_ocorrencias%}
<p>{{ocorrencia}}</p>
{% endfor %}
</div>
{% endblock content %} {% endblock content %}

10
sapl/templates/sessao/resumo.html

@ -10,6 +10,16 @@
{% endblock %} {% endblock %}
{% block detail_content %} {% block detail_content %}
<!--<div>
<p align="right">
<strong>
<a href="{% url 'sapl.relatorios:relatorio_sessao_plenaria' sessaoplenaria.pk %}">
Impressão PDF
</a>
</strong>
</p>
</div> Impressão Antiga-->
<div> <div>
<p align="right"> <p align="right">
<strong> <strong>

Loading…
Cancel
Save