diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
index 8925ebcd0..0b5d758ca 100644
--- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
+++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
@@ -227,6 +227,30 @@ def expediente_materia(lst_expediente_materia):
return tmp
+def expediente_materia_vot_nom(lst_expediente_materia_vot_nom):
+ """
+ """
+ tmp = ''
+ tmp += '\t\tVotações Nominais - Matérias do Expediente \n\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '\n'
+ tmp += 'Matéria Votos \n'
+ for expediente_materia_vot_nom in lst_expediente_materia_vot_nom:
+ tmp += '' + str(expediente_materia_vot_nom['titulo']) + ' '
+ if expediente_materia_vot_nom['votos']:
+ tmp += ''
+ for v in expediente_materia_vot_nom['votos']:
+ tmp += '' + str(v.parlamentar) + ' - ' + v.voto + ' '
+ tmp += ' '
+ else:
+ tmp += 'Matéria não votada '
+ tmp += ' \n'
+ tmp += '\t\t \n'
+ return tmp
+
+
def oradores_expediente(lst_oradores_expediente):
"""
@@ -292,6 +316,30 @@ def votacao(lst_votacao):
return tmp
+def votacao_vot_nom(lst_votacao_vot_nom):
+ """
+ """
+ tmp = ''
+ tmp += '\t\tVotações Nominais - Matérias da Ordem do Dia \n\n'
+ tmp += '\t\t\n'
+ tmp += '\t\t\t \n'
+ tmp += '\t\t \n'
+ tmp += '\n'
+ tmp += 'Matéria Votos \n'
+ for votacao_vot_nom in lst_votacao_vot_nom:
+ tmp += '' + str(votacao_vot_nom['titulo']) + ' '
+ if votacao_vot_nom['votos']:
+ tmp += ''
+ for v in votacao_vot_nom['votos']:
+ tmp += '' + str(v.parlamentar) + ' - ' + v.voto + ' '
+ tmp += ' '
+ else:
+ tmp += 'Matéria não votada '
+ tmp += ' \n'
+ tmp += '\t\t \n'
+ return tmp
+
+
def oradores(lst_oradores):
"""
@@ -326,7 +374,7 @@ def ocorrencias(lst_ocorrencias):
return tmp
-def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_ausencia_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores, lst_ocorrencias):
+def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_ausencia_sessao, lst_expedientes, lst_expediente_materia, lst_expediente_materia_vot_nom, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_votacao_vot_nom, lst_oradores, lst_ocorrencias):
"""
"""
arquivoPdf = str(int(time.time() * 100)) + ".pdf"
@@ -355,7 +403,9 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
'lista_p': presenca(lst_presenca_sessao, lst_ausencia_sessao),
'lista_p_o_d': presenca_ordem_dia(lst_presenca_ordem_dia),
'mat_exp': expediente_materia(lst_expediente_materia),
+ 'v_n_mat_exp': expediente_materia_vot_nom(lst_expediente_materia_vot_nom),
'mat_o_d': votacao(lst_votacao),
+ 'v_n_mat_o_d': votacao_vot_nom(lst_votacao_vot_nom),
'mesa_d': mesa(lst_mesa),
'oradores_exped': oradores_expediente(lst_oradores_expediente),
'oradores_expli': oradores(lst_oradores),
@@ -374,6 +424,8 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
tmp += dict_ord_template[ordenacao.nono]
tmp += dict_ord_template[ordenacao.decimo]
tmp += dict_ord_template[ordenacao.decimo_primeiro]
+ tmp += dict_ord_template[ordenacao.decimo_segundo]
+ tmp += dict_ord_template[ordenacao.decimo_terceiro]
else:
tmp += inf_basicas(inf_basicas_dic)
@@ -381,9 +433,11 @@ def principal(rodape_dic, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao
tmp += presenca(lst_presenca_sessao, lst_ausencia_sessao)
tmp += expedientes(lst_expedientes)
tmp += expediente_materia(lst_expediente_materia)
+ tmp += expediente_materia_vot_nom(lst_expediente_materia_vot_nom)
tmp += oradores_expediente(lst_oradores_expediente)
tmp += presenca_ordem_dia(lst_presenca_ordem_dia)
tmp += votacao(lst_votacao)
+ tmp += votacao_vot_nom(lst_votacao_vot_nom)
tmp += oradores(lst_oradores)
tmp += ocorrencias(lst_ocorrencias)
diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py
index aad44fc1d..53331eadd 100755
--- a/sapl/relatorios/views.py
+++ b/sapl/relatorios/views.py
@@ -19,7 +19,8 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao,
IntegranteMesa, JustificativaAusencia,
Orador, OradorExpediente,
OrdemDia, PresencaOrdemDia, SessaoPlenaria,
- SessaoPlenariaPresenca, OcorrenciaSessao)
+ SessaoPlenariaPresenca, OcorrenciaSessao,
+ RegistroVotacao, VotoParlamentar)
from sapl.settings import STATIC_ROOT
from sapl.utils import LISTA_DE_UFS, TrocaTag, filiacao_data
@@ -633,6 +634,28 @@ def get_sessao_plenaria(sessao, casa):
dic_expediente_materia["votacao_observacao"] = ' '
lst_expediente_materia.append(dic_expediente_materia)
+ # Lista dos votos nominais das matérias do Expediente
+ lst_expediente_materia_vot_nom = []
+
+ materias_expediente_votacao_nominal = ExpedienteMateria.objects.filter(
+ sessao_plenaria=sessao,
+ tipo_votacao=2).order_by('-materia')
+
+ for mevn in materias_expediente_votacao_nominal:
+ votos_materia = []
+ titulo_materia = mevn.materia
+ registro = RegistroVotacao.objects.filter(expediente=mevn)
+
+ if registro:
+ for vp in VotoParlamentar.objects.filter(votacao=registro).order_by('parlamentar'):
+ votos_materia.append(vp)
+
+ dic_expediente_materia_vot_nom = {
+ 'titulo': titulo_materia,
+ 'votos': votos_materia
+ }
+ lst_expediente_materia_vot_nom.append(dic_expediente_materia_vot_nom)
+
# Lista dos oradores do Expediente
lst_oradores_expediente = []
for orador_expediente in OradorExpediente.objects.filter(
@@ -722,6 +745,28 @@ def get_sessao_plenaria(sessao, casa):
dic_votacao["nom_resultado"] = "Matéria não votada"
lst_votacao.append(dic_votacao)
+ # Lista dos votos nominais das matérias da Ordem do Dia
+ lst_votacao_vot_nom = []
+
+ materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter(
+ sessao_plenaria=sessao,
+ tipo_votacao=2).order_by('-materia')
+
+ for modvn in materias_ordem_dia_votacao_nominal:
+ votos_materia_od = []
+ t_materia = modvn.materia
+ registro_od = RegistroVotacao.objects.filter(ordem=modvn)
+
+ if registro_od:
+ for vp_od in VotoParlamentar.objects.filter(votacao=registro_od).order_by('parlamentar'):
+ votos_materia_od.append(vp_od)
+
+ dic_votacao_vot_nom = {
+ 'titulo': t_materia,
+ 'votos': votos_materia_od
+ }
+ lst_votacao_vot_nom.append(dic_votacao_vot_nom)
+
# Lista dos oradores nas Explicações Pessoais
lst_oradores = []
for orador in Orador.objects.filter(
@@ -767,9 +812,11 @@ def get_sessao_plenaria(sessao, casa):
lst_ausencia_sessao,
lst_expedientes,
lst_expediente_materia,
+ lst_expediente_materia_vot_nom,
lst_oradores_expediente,
lst_presenca_ordem_dia,
lst_votacao,
+ lst_votacao_vot_nom,
lst_oradores,
lst_ocorrencias)
@@ -822,9 +869,11 @@ def relatorio_sessao_plenaria(request, pk):
lst_ausencia_sessao,
lst_expedientes,
lst_expediente_materia,
+ lst_expediente_materia_vot_nom,
lst_oradores_expediente,
lst_presenca_ordem_dia,
lst_votacao,
+ lst_votacao_vot_nom,
lst_oradores,
lst_ocorrencias) = get_sessao_plenaria(sessao, casa)
@@ -843,9 +892,11 @@ def relatorio_sessao_plenaria(request, pk):
lst_ausencia_sessao,
lst_expedientes,
lst_expediente_materia,
+ lst_expediente_materia_vot_nom,
lst_oradores_expediente,
lst_presenca_ordem_dia,
lst_votacao,
+ lst_votacao_vot_nom,
lst_oradores,
lst_ocorrencias)
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
index 9ed642a00..6f68de1a6 100755
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -1418,7 +1418,30 @@ class ResumoView(DetailView):
materias_expediente.append(mat)
context.update({'materia_expediente': materias_expediente})
-
+
+ # Votos de Votação Nominal de Matérias Expediente
+ materias_expediente_votacao_nominal = ExpedienteMateria.objects.filter(
+ sessao_plenaria_id=self.object.id,
+ tipo_votacao=2).order_by('-materia')
+
+ votacoes = []
+ for mevn in materias_expediente_votacao_nominal:
+
+ votos_materia = []
+ titulo_materia = mevn.materia
+ registro = RegistroVotacao.objects.filter(expediente=mevn)
+ if registro:
+ for vp in VotoParlamentar.objects.filter(votacao=registro).order_by('parlamentar'):
+ votos_materia.append(vp)
+
+ dados_votacao = {
+ 'titulo': titulo_materia,
+ 'votos': votos_materia
+ }
+ votacoes.append(dados_votacao)
+
+ context.update({'votos_nominais_materia_expediente': votacoes})
+
# =====================================================================
# Oradores Expediente
oradores = []
@@ -1518,6 +1541,29 @@ class ResumoView(DetailView):
context.update({'materias_ordem': materias_ordem})
+ # Votos de Votação Nominal de Matérias Ordem do Dia
+ materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter(
+ sessao_plenaria_id=self.object.id,
+ tipo_votacao=2).order_by('-materia')
+
+ votacoes_od = []
+ for modvn in materias_ordem_dia_votacao_nominal:
+
+ votos_materia_od = []
+ t_materia = modvn.materia
+ registro_od = RegistroVotacao.objects.filter(ordem=modvn)
+ if registro_od:
+ for vp_od in VotoParlamentar.objects.filter(votacao=registro_od).order_by('parlamentar'):
+ votos_materia_od.append(vp_od)
+
+ dados_votacao_od = {
+ 'titulo': t_materia,
+ 'votos': votos_materia_od
+ }
+ votacoes_od.append(dados_votacao_od)
+
+ context.update({'votos_nominais_materia_ordem_dia': votacoes_od})
+
# =====================================================================
# Oradores nas Explicações Pessoais
oradores_explicacoes = []
@@ -1556,7 +1602,9 @@ class ResumoView(DetailView):
'lista_p': 'lista_presenca.html',
'lista_p_o_d': 'lista_presenca_ordem_dia.html',
'mat_exp': 'materias_expediente.html',
+ 'v_n_mat_exp': 'votos_nominais_materias_expediente.html',
'mat_o_d': 'materias_ordem_dia.html',
+ 'v_n_mat_o_d': 'votos_nominais_materias_ordem_dia.html',
'mesa_d': 'mesa_diretora.html',
'oradores_exped': 'oradores_expediente.html',
'oradores_expli': 'oradores_explicacoes.html',
@@ -1575,7 +1623,10 @@ class ResumoView(DetailView):
'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_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]})
+
else:
context.update(
{'primeiro_ordenacao': dict_ord_template['id_basica'],
@@ -1584,11 +1635,14 @@ class ResumoView(DetailView):
'quarto_ordenacao': dict_ord_template['lista_p'],
'quinto_ordenacao': dict_ord_template['exp'],
'sexto_ordenacao': dict_ord_template['mat_exp'],
- 'setimo_ordenacao': dict_ord_template['oradores_exped'],
- 'oitavo_ordenacao': dict_ord_template['lista_p_o_d'],
- 'nono_ordenacao': dict_ord_template['mat_o_d'],
- 'decimo_ordenacao': dict_ord_template['oradores_expli'],
- 'decimo_primeiro_ordenacao': dict_ord_template['ocorr_sessao']})
+ 'setimo_ordenacao': dict_ord_template['v_n_mat_exp'],
+ 'oitavo_ordenacao': dict_ord_template['oradores_exped'],
+ 'nono_ordenacao': dict_ord_template['lista_p_o_d'],
+ 'decimo_ordenacao': dict_ord_template['mat_o_d'],
+ 'decimo_primeiro_ordenacao': dict_ord_template['v_n_mat_o_d'],
+ 'decimo_segundo_ordenacao': dict_ord_template['oradores_expli'],
+ 'decimo_terceiro_ordenacao': dict_ord_template['ocorr_sessao']
+ })
return self.render_to_response(context)
diff --git a/sapl/templates/sessao/blocos_resumo/votos_nominais_materias_expediente.html b/sapl/templates/sessao/blocos_resumo/votos_nominais_materias_expediente.html
new file mode 100644
index 000000000..91160c869
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/votos_nominais_materias_expediente.html
@@ -0,0 +1,28 @@
+
+ Votações Nominais - Matérias do Expediente
+
+
+
+
+ Matéria
+ Votos
+
+
+
+ {% for m in votos_nominais_materia_expediente %}
+
+ {{ m.titulo }}
+ {% if m.votos %}
+
+ {% for v in m.votos %}
+ {{v.parlamentar}} - {{v.voto}}
+ {% endfor %}
+
+ {% else %}
+ Matéria não votada
+ {% endif %}
+
+ {% endfor %}
+
+
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/blocos_resumo/votos_nominais_materias_ordem_dia.html b/sapl/templates/sessao/blocos_resumo/votos_nominais_materias_ordem_dia.html
new file mode 100644
index 000000000..d610216d7
--- /dev/null
+++ b/sapl/templates/sessao/blocos_resumo/votos_nominais_materias_ordem_dia.html
@@ -0,0 +1,28 @@
+
+ Votações Nominais - Matérias da Ordem do Dia
+
+
+
+
+ Matéria
+ Votos
+
+
+
+ {% for m in votos_nominais_materia_ordem_dia %}
+
+ {{ m.titulo }}
+ {% if m.votos %}
+
+ {% for v in m.votos %}
+ {{v.parlamentar}} - {{v.voto}}
+ {% endfor %}
+
+ {% else %}
+ Matéria não votada
+ {% endif %}
+
+ {% endfor %}
+
+
+
\ No newline at end of file
diff --git a/sapl/templates/sessao/resumo.html b/sapl/templates/sessao/resumo.html
index c7c2070ce..acf9fc5b6 100644
--- a/sapl/templates/sessao/resumo.html
+++ b/sapl/templates/sessao/resumo.html
@@ -53,4 +53,10 @@
{% include 'sessao/blocos_resumo/'|add:decimo_primeiro_ordenacao %}
+ {% include 'sessao/blocos_resumo/'|add:decimo_segundo_ordenacao %}
+
+
+ {% include 'sessao/blocos_resumo/'|add:decimo_segundo_ordenacao %}
+
+
{% endblock detail_content %}