diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 340a04812..3738a35bf 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -24,7 +24,7 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria, SessaoPlenariaPresenca, OcorrenciaSessao, - RegistroVotacao, VotoParlamentar, OradorOrdemDia, TipoExpediente) + RegistroVotacao, VotoParlamentar, OradorOrdemDia, TipoExpediente, ResumoOrdenacao) from sapl.settings import STATIC_ROOT from sapl.utils import LISTA_DE_UFS, TrocaTag, filiacao_data @@ -1465,26 +1465,82 @@ def relatorio_sessao_plenaria_pdf(request, pk): lst_oradores, lst_ocorrencias) = get_sessao_plenaria(sessao, casa) - html_template = render_to_string('relatorios/relatorio_sessao_plenaria.html', - { - "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') - }) + dict_ord_template = { + 'cont_mult': 'conteudo_multimidia.html', + 'exp': 'expedientes.html', + 'id_basica': 'identificacao_basica.html', + 'lista_p': 'lista_presenca_sessao.html', + 'lista_p_o_d': 'lista_presenca_ordemdia.html', + 'mat_exp': 'materias_expediente.html', + 'v_n_mat_exp': 'votos_nominais_expediente.html', + 'mat_o_d': 'materias_ordemdia.html', + 'v_n_mat_o_d': 'votos_nominais_ordemdia.html', + 'mesa_d': 'mesa_diretora.html', + 'oradores_exped': 'oradores_expediente.html', + 'oradores_o_d': 'oradores_ordemdia.html', + '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') + } + + 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 {} \ da {}ª Sessão Legislativa da {} \ diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/conteudo_multimidia.html b/sapl/templates/relatorios/blocos_sessao_plenaria/conteudo_multimidia.html new file mode 100644 index 000000000..c30f9b2fd --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/conteudo_multimidia.html @@ -0,0 +1,3 @@ +

Conteúdo Multimídia

+

Multimídia Audio: {{cont_mult_dic.multimidia_audio}}

+

Multimídia Video: {{cont_mult_dic.multimidia_video}}

\ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/expedientes.html b/sapl/templates/relatorios/blocos_sessao_plenaria/expedientes.html new file mode 100644 index 000000000..b78d5e038 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/expedientes.html @@ -0,0 +1,5 @@ +

Expedientes

+ {% for expediente in lst_expedientes%} +

{{expediente.nom_expediente}}

+

{{expediente.txt_expediente|safe}}

+ {% endfor%} diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/identificacao_basica.html b/sapl/templates/relatorios/blocos_sessao_plenaria/identificacao_basica.html new file mode 100644 index 000000000..8b334d260 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/identificacao_basica.html @@ -0,0 +1,4 @@ +

Informações Básicas

+

Tipo da Sessão: {{inf_basicas_dic.nom_sessao}}

+

Abertura: {{inf_basicas_dic.dat_inicio_sessao}} - {{inf_basicas_dic.hr_inicio_sessao}}

+

Encerramento: {{inf_basicas_dic.dat_fim_sessao}} - {{inf_basicas_dic.hr_fim_sessao}}

\ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/justificativa_ausencia_sessao.html b/sapl/templates/relatorios/blocos_sessao_plenaria/justificativa_ausencia_sessao.html new file mode 100644 index 000000000..66a4ad9c1 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/justificativa_ausencia_sessao.html @@ -0,0 +1,21 @@ +

Justificativas de Ausência da Sessão

+ + + + + + + + + + + {% for ausencia in lst_ausencia_sessao%} + + + + + + {% endfor %} + + +
ParlamentarJustificativaAusente em
{{ausencia.parlamentar}}{{ausencia.justificativa}}{{ausencia.tipo}}
\ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_ordemdia.html b/sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_ordemdia.html new file mode 100644 index 000000000..76feb774a --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_ordemdia.html @@ -0,0 +1,6 @@ +

Lista de Presença da Ordem do Dia

+ {% for orador in lst_presenca_ordem_dia%} + +

{{orador.nom_parlamentar}}/{{orador.sgl_partido}}

+ + {% endfor %} diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_sessao.html b/sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_sessao.html new file mode 100644 index 000000000..232e677fb --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/lista_presenca_sessao.html @@ -0,0 +1,4 @@ +

Lista de Presença da Sessão

+ {% for membro in lst_presenca_sessao%} +

{{membro.nom_parlamentar}}/{{membro.sgl_partido}}

+ {% endfor%} \ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/materias_expediente.html b/sapl/templates/relatorios/blocos_sessao_plenaria/materias_expediente.html new file mode 100644 index 000000000..bb5178b59 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/materias_expediente.html @@ -0,0 +1,27 @@ +

Matérias do Expediente

+ + + + + + + + + + + {% for materia in lst_expediente_materia%} + + + + + + {% endfor %} + + +
MatériaEmentaResultado da Votação
+
+
{{materia.num_ordem}} - {{materia.id_materia}}
+
Turno: {{materia.des_turno}}
+
{{materia.num_autores}}: {{materia.nom_autor}}
+
+
{{materia.txt_ementa}}
 {{materia.nom_resultado}}
\ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/materias_ordemdia.html b/sapl/templates/relatorios/blocos_sessao_plenaria/materias_ordemdia.html new file mode 100644 index 000000000..a44b4d3ca --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/materias_ordemdia.html @@ -0,0 +1,27 @@ +

Matérias da Ordem do Dia

+ + + + + + + + + + + {% for materia in lst_votacao%} + + + + + + {% endfor %} + + +
MatériaEmentaResultado da Votação
+
+
{{materia.num_ordem}} - {{materia.id_materia}}
+
Turno: {{materia.des_turno}}
+
{{materia.num_autores}}: {{materia.nom_autor}}
+
+
{{materia.txt_ementa}} {{materia.nom_resultado}}
\ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/mesa_diretora.html b/sapl/templates/relatorios/blocos_sessao_plenaria/mesa_diretora.html new file mode 100644 index 000000000..35b10f817 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/mesa_diretora.html @@ -0,0 +1,4 @@ +

Mesa Diretora

+ {% for membro in lst_mesa%} +

{{membro.des_cargo}}: {{membro.nom_parlamentar}}/{{membro.sgl_partido}}

+ {% endfor%} \ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/ocorrencias_sessao.html b/sapl/templates/relatorios/blocos_sessao_plenaria/ocorrencias_sessao.html new file mode 100644 index 000000000..0a2b04ff1 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/ocorrencias_sessao.html @@ -0,0 +1,4 @@ +

Ocorrências da Sessão

+ {% for ocorrencia in lst_ocorrencias%} +

{{ocorrencia}}

+ {% endfor %} diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_expediente.html b/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_expediente.html new file mode 100644 index 000000000..8606fa1e1 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_expediente.html @@ -0,0 +1,7 @@ +

Oradores do Expediente

+ + {% for orador in lst_oradores_expediente%} + +

{{orador.num_ordem}} - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}

+ + {% endfor %} \ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_explicacoes.html b/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_explicacoes.html new file mode 100644 index 000000000..b22503e4f --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_explicacoes.html @@ -0,0 +1,8 @@ +
+

Oradores das Explicações Pessoais

+ {% for orador in lst_oradores%} + +

{{orador.num_ordem}} - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}

+ + {% endfor %} +
\ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_ordemdia.html b/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_ordemdia.html new file mode 100644 index 000000000..e01e0669a --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/oradores_ordemdia.html @@ -0,0 +1,7 @@ + {% if lst_oradores_ordemdia %} +

Oradores da Ordem do Dia

+ {% for orador_ordemdia in lst_oradores_ordemdia %} +

{{orador_ordemdia.num_ordem}} - {{orador_ordemdia.nome_parlamentar}}/{{orador_ordemdia.sigla}} + {%if orador_ordemdia.observacao%}- {{orador_ordemdia.observacao}}{%endif%}

+ {% endfor %} + {% endif %} \ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_expediente.html b/sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_expediente.html new file mode 100644 index 000000000..12fe61609 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_expediente.html @@ -0,0 +1,27 @@ + {% if lst_votacao_vot_nom %} +

Votações Nominais - Matérias do Expediente

+ + + + + + + + {% for expediente_materia_vot_nom in lst_expediente_materia_vot_nom %} + + + + {% endif %} + + + {% endfor %} +
MatériaVotos
{{expediente_materia_vot_nom.titulo}} + {% if expediente_materia_vot_nom.votos %} +
+ {% for v in expediente_materia_vot_nom.votos %} +
 {{v.parlamentar}} {{v.voto}}
+ {% endfor %} +
+ {% else %} +

Matéria não votada

+ {% endif %} \ No newline at end of file diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_ordemdia.html b/sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_ordemdia.html new file mode 100644 index 000000000..d87f36558 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/votos_nominais_ordemdia.html @@ -0,0 +1,27 @@ + {% if lst_votacao_vot_nom %} +

Votações Nominais - Matérias da Ordem do Dia

+ + + + + + + + {% for votacao_vot_nom in lst_votacao_vot_nom %} + + + + {% endif %} + + + {% endfor %} +
MatériaVotos
{{votacao_vot_nom.titulo}} + {% if votacao_vot_nom.votos %} +
+ {% for v in votacao_vot_nom.votos %} +
 {{v.parlamentar}} {{v.voto}}
+ {% endfor %} +
+ {% else %} +

Matéria não votada

+ {% endif %} \ No newline at end of file diff --git a/sapl/templates/relatorios/relatorio_sessao_plenaria.html b/sapl/templates/relatorios/relatorio_sessao_plenaria.html index 1d4a1a117..4db5d298b 100644 --- a/sapl/templates/relatorios/relatorio_sessao_plenaria.html +++ b/sapl/templates/relatorios/relatorio_sessao_plenaria.html @@ -3,206 +3,35 @@ {% block content %}
-

Informações Básicas

-

Tipo da Sessão: {{inf_basicas_dic.nom_sessao}}

-

Abertura: {{inf_basicas_dic.dat_inicio_sessao}} - {{inf_basicas_dic.hr_inicio_sessao}}

-

Encerramento: {{inf_basicas_dic.dat_fim_sessao}} - {{inf_basicas_dic.hr_fim_sessao}}

- -

Conteúdo Multimídia

-

Multimídia Audio: {{cont_mult_dic.multimidia_audio}}

-

Multimídia Video: {{cont_mult_dic.multimidia_video}}

- -

Mesa Diretora

- {% for membro in lst_mesa%} -

{{membro.des_cargo}}: {{membro.nom_parlamentar}}/{{membro.sgl_partido}}

- {% endfor%} - -

Lista de Presença da Sessão

- {% for membro in lst_presenca_sessao%} -

{{membro.nom_parlamentar}}/{{membro.sgl_partido}}

- {% endfor%} - -

Justificativas de Ausência da Sessão

- - - - - - - - - - - {% for ausencia in lst_ausencia_sessao%} - - - - - - {% endfor %} - - -
ParlamentarJustificativaAusente em
{{ausencia.parlamentar}}{{ausencia.justificativa}}{{ausencia.tipo}}
- -

Expedientes

- {% for expediente in lst_expedientes%} -

{{expediente.nom_expediente}}

-

{{expediente.txt_expediente|safe}}

- {% endfor%} - - -

Matérias do Expediente

- - - - - - - - - - - {% for materia in lst_expediente_materia%} - - - - - - {% endfor %} - - -
MatériaEmentaResultado da Votação
-
-
{{materia.num_ordem}} - {{materia.id_materia}}
-
Turno: {{materia.des_turno}}
-
{{materia.num_autores}}: {{materia.nom_autor}}
-
-
{{materia.txt_ementa}}
 {{materia.nom_resultado}}
- - {% if lst_votacao_vot_nom %} -

Votações Nominais - Matérias do Expediente

- - - - - - - - {% for expediente_materia_vot_nom in lst_expediente_materia_vot_nom %} - - - - {% endif %} - - - {% endfor %} -
MatériaVotos
{{expediente_materia_vot_nom.titulo}} - {% if expediente_materia_vot_nom.votos %} -
- {% for v in expediente_materia_vot_nom.votos %} -
 {{v.parlamentar}} {{v.voto}}
- {% endfor %} -
- {% else %} -

Matéria não votada

- {% endif %} - - -

Oradores do Expediente

- - {% for orador in lst_oradores_expediente%} - -

{{orador.num_ordem}} - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}

- - {% endfor %} - -

Lista de Presença da Ordem do Dia

- - {% for orador in lst_presenca_ordem_dia%} - -

{{orador.nom_parlamentar}}/{{orador.sgl_partido}}

- - {% endfor %} - -

Matérias da Ordem do Dia

- - - - - - - - - - - {% for materia in lst_votacao%} - - - - - - {% endfor %} - - -
MatériaEmentaResultado da Votação
-
-
{{materia.num_ordem}} - {{materia.id_materia}}
-
Turno: {{materia.des_turno}}
-
{{materia.num_autores}}: {{materia.nom_autor}}
-
-
{{materia.txt_ementa}} {{materia.nom_resultado}}
- - {% if lst_votacao_vot_nom %} -

Votações Nominais - Matérias da Ordem do Dia

- - - - - - - - {% for votacao_vot_nom in lst_votacao_vot_nom %} - - - - {% endif %} - - - {% endfor %} -
MatériaVotos
{{votacao_vot_nom.titulo}} - {% if votacao_vot_nom.votos %} -
- {% for v in votacao_vot_nom.votos %} -
 {{v.parlamentar}} {{v.voto}}
- {% endfor %} -
- {% else %} -

Matéria não votada

- {% endif %} - - {% if lst_oradores_ordemdia %} -

Oradores da Ordem do Dia

- {% for orador_ordemdia in lst_oradores_ordemdia %} -

{{orador_ordemdia.num_ordem}} - {{orador_ordemdia.nome_parlamentar}}/{{orador_ordemdia.sigla}} - {%if orador_ordemdia.observacao%}- {{orador_ordemdia.observacao}}{%endif%}

- {% endfor %} - {% endif %} - -
-

Oradores das Explicações Pessoais

- {% for orador in lst_oradores%} - -

{{orador.num_ordem}} - {{orador.nom_parlamentar}}/{{orador.sgl_partido}}

- - {% endfor %} -
- - -

Ocorrências da Sessão

- {% for ocorrencia in lst_ocorrencias%} -

{{ocorrencia}}

- {% endfor %} - + + {% include 'relatorios/blocos_sessao_plenaria/'|add:primeiro_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:segundo_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:terceiro_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:quarto_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:quinto_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:sexto_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:setimo_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:oitavo_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:nono_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_primeiro_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_segundo_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_terceiro_ordenacao %} + + {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_quarto_ordenacao %} +