diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py index 0ede61f97..5d3f259b0 100644 --- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py +++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py @@ -399,8 +399,23 @@ def ocorrencias(lst_ocorrencias): tmp += '\t\t\n' return tmp +def consideracoes(lst_consideracoes): + tmp = '' + if lst_consideracoes: + tmp += '\t\tConsideracoes Finais\n' + tmp += '\t\t\n' + tmp += '\t\t\t \n' + tmp += '\t\t\n' + for consideracoes in lst_consideracoes: + tmp += '\t\t' + \ + str(consideracoes.conteudo) + '\n' + tmp += '\t\t\n' + tmp += '\t\t\t \n' + tmp += '\t\t\n' + return tmp + -def principal(rodape_dic, imagem, inf_basicas_dic, cont_mult_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_ordemdia, lst_oradores, lst_ocorrencias): +def principal(rodape_dic, imagem, inf_basicas_dic, cont_mult_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_ordemdia, lst_oradores, lst_ocorrencias, lst_consideracoes): """ """ arquivoPdf = str(int(time.time() * 100)) + ".pdf" @@ -437,7 +452,8 @@ def principal(rodape_dic, imagem, inf_basicas_dic, cont_mult_dic, lst_mesa, lst_ 'oradores_exped': oradores_expediente(lst_oradores_expediente), 'oradores_o_d': oradores_ordemdia(lst_oradores_ordemdia), 'oradores_expli': oradores(lst_oradores), - 'ocorr_sessao': ocorrencias(lst_ocorrencias) + 'ocorr_sessao': ocorrencias(lst_ocorrencias), + 'cons_finais': consideracoes(lst_consideracoes) } if ordenacao: @@ -456,6 +472,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, cont_mult_dic, lst_mesa, lst_ tmp += dict_ord_template[ordenacao.decimo_segundo] tmp += dict_ord_template[ordenacao.decimo_terceiro] tmp += dict_ord_template[ordenacao.decimo_quarto] + tmp += dict_ord_template[ordenacao.decimo_quinto] except KeyError as e: logger.error("KeyError: " + str(e) + ". Erro ao tentar utilizar " "configuração de ordenação. Utilizando ordenação padrão.") @@ -473,6 +490,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, cont_mult_dic, lst_mesa, lst_ tmp += oradores_ordemdia(lst_oradores_ordemdia) tmp += oradores(lst_oradores) tmp += ocorrencias(lst_ocorrencias) + tmp += consideracoes(lst_consideracoes) else: tmp += inf_basicas(inf_basicas_dic) @@ -489,6 +507,7 @@ def principal(rodape_dic, imagem, inf_basicas_dic, cont_mult_dic, lst_mesa, lst_ tmp += oradores_ordemdia(lst_oradores_ordemdia) tmp += oradores(lst_oradores) tmp += ocorrencias(lst_ocorrencias) + tmp += consideracoes(lst_consideracoes) tmp += '\t\n' tmp += '\n' diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py b/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py index 5eef2d912..710d2ef61 100644 --- a/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py +++ b/sapl/relatorios/templates/pdf_sessao_plenaria_preparar_pysc.py @@ -277,7 +277,7 @@ if context.REQUEST['data'] != '': # return lst_votacao sessao = session.id caminho = context.pdf_sessao_plenaria_gerar(rodape, sessao, imagem, inf_basicas_dic, lst_mesa, lst_presenca_sessao, - lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores) + lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores, lst_consideracoes) if caminho == 'aviso': response.redirect('mensagem_emitir_proc') else: diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index 706eb32b4..8ae7bba97 100755 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -35,7 +35,8 @@ from sapl.sessao.views import (get_identificacao_basica, get_mesa_diretora, get_materias_expediente, get_oradores_expediente, get_presenca_ordem_do_dia, get_materias_ordem_do_dia, get_oradores_ordemdia, - get_oradores_explicacoes_pessoais, get_consideracoes_finais, get_ocorrencias_da_sessao, get_assinaturas) + get_oradores_explicacoes_pessoais, get_consideracoes_finais, + get_ocorrencias_da_sessao, get_assinaturas) from .templates import (pdf_capa_processo_gerar, pdf_documento_administrativo_gerar, pdf_espelho_gerar, @@ -848,6 +849,26 @@ def get_sessao_plenaria(sessao, casa): lst_ocorrencias.append(o) + # Ocorrências da Sessão + lst_consideracoes = [] + consideracoes = OcorrenciaSessao.objects.filter(sessao_plenaria=sessao) + + for c in consideracoes: + conteudo = c.conteudo + + # unescape HTML codes + # https://github.com/interlegis/sapl/issues/1046 + conteudo = re.sub('style=".*?"', '', conteudo) + conteudo = html.unescape(conteudo) + + # escape special character '&' + # https://github.com/interlegis/sapl/issues/1009 + conteudo = conteudo.replace('&', '&') + + c.conteudo = conteudo + + lst_consideracoes.append(o) + return (inf_basicas_dic, cont_mult_dic, lst_mesa, @@ -862,7 +883,8 @@ def get_sessao_plenaria(sessao, casa): lst_votacao_vot_nom, lst_oradores_ordemdia, lst_oradores, - lst_ocorrencias) + lst_ocorrencias, + lst_consideracoes) def get_turno(materia): @@ -924,7 +946,8 @@ def relatorio_sessao_plenaria(request, pk): lst_votacao_vot_nom, lst_oradores_ordemdia, lst_oradores, - lst_ocorrencias) = get_sessao_plenaria(sessao, casa) + lst_ocorrencias, + lst_consideracoes) = get_sessao_plenaria(sessao, casa) for idx in range(len(lst_expedientes)): txt_expedientes = lst_expedientes[idx]['txt_expediente'] @@ -949,7 +972,8 @@ def relatorio_sessao_plenaria(request, pk): lst_votacao_vot_nom, lst_oradores_ordemdia, lst_oradores, - lst_ocorrencias) + lst_ocorrencias, + lst_consideracoes) response.write(pdf) return response @@ -1482,7 +1506,8 @@ def relatorio_sessao_plenaria_pdf(request, pk): lst_votacao_vot_nom, lst_oradores_ordemdia, lst_oradores, - lst_ocorrencias) = get_sessao_plenaria(sessao, casa) + lst_ocorrencias, + lst_consideracoes) = get_sessao_plenaria(sessao, casa) dict_ord_template = { 'cont_mult': 'conteudo_multimidia.html', @@ -1498,7 +1523,8 @@ def relatorio_sessao_plenaria_pdf(request, pk): 'oradores_exped': 'oradores_expediente.html', 'oradores_o_d': 'oradores_ordemdia.html', 'oradores_expli': 'oradores_explicacoes.html', - 'ocorr_sessao': 'ocorrencias_sessao.html' + 'ocorr_sessao': 'ocorrencias_da_sessao.html', + 'cons_finais': 'consideracoes_finais.html' } context = { @@ -1517,6 +1543,7 @@ def relatorio_sessao_plenaria_pdf(request, pk): "lst_votacao_vot_nom": lst_votacao_vot_nom, "lst_oradores": lst_oradores, "lst_ocorrencias": lst_ocorrencias, + "lst_consideracoes": lst_consideracoes, "rodape": rodape, "data": dt.today().strftime('%d/%m/%Y') } @@ -1537,7 +1564,8 @@ def relatorio_sessao_plenaria_pdf(request, pk): '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] + 'decimo_quarto_ordenacao': dict_ord_template[ordenacao.decimo_quarto], + 'decimo_quinto_ordenacao': dict_ord_template[ordenacao.decimo_quinto] }) except KeyError as e: # self.logger.error("KeyError: " + str(e) + ". Erro ao tentar utilizar " @@ -1556,7 +1584,8 @@ def relatorio_sessao_plenaria_pdf(request, pk): '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' + 'decimo_quarto_ordenacao': 'ocorrencias_da_sessao.html', + 'decimo_quinto_ordenacao': 'consideracoes_finais.html' }) html_template = render_to_string( diff --git a/sapl/sessao/forms.py b/sapl/sessao/forms.py index 09eb3515d..303495900 100644 --- a/sapl/sessao/forms.py +++ b/sapl/sessao/forms.py @@ -783,6 +783,10 @@ class ResumoOrdenacaoForm(forms.Form): label='14°', choices=ORDENACAO_RESUMO ) + decimo_quinto = forms.ChoiceField( + label='14°', + choices=ORDENACAO_RESUMO + ) def __init__(self, *args, **kwargs): row1 = to_row( @@ -814,6 +818,9 @@ class ResumoOrdenacaoForm(forms.Form): row14 = to_row( [('decimo_quarto', 12)] ) + row15 = to_row( + [('decimo_quinto', 12)] + ) self.helper = SaplFormHelper() self.helper.layout = Layout( @@ -862,6 +869,7 @@ class ResumoOrdenacaoForm(forms.Form): ordenacao.decimo_segundo = cleaned_data['decimo_segundo'] ordenacao.decimo_terceiro = cleaned_data['decimo_terceiro'] ordenacao.decimo_quarto = cleaned_data['decimo_quarto'] + ordenacao.decimo_quinto = cleaned_data['decimo_quinto'] ordenacao.save() diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 4116d9337..b89797d19 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -1843,7 +1843,8 @@ class ResumoOrdenacaoView(PermissionRequiredMixin, FormView): 'decimo_primeiro': self.get_tupla(ordenacao.decimo_primeiro), 'decimo_segundo': self.get_tupla(ordenacao.decimo_segundo), 'decimo_terceiro': self.get_tupla(ordenacao.decimo_terceiro), - 'decimo_quarto': self.get_tupla(ordenacao.decimo_quarto) + 'decimo_quarto': self.get_tupla(ordenacao.decimo_quarto), + 'decimo_quinto': self.get_tupla(ordenacao.decimo_quinto) } return initial @@ -2450,7 +2451,7 @@ class ExpedienteView(FormMixin, DetailView): class OcorrenciaSessaoView(FormMixin, DetailView): - template_name = 'sessao/ocorrencia_sessao.html' + template_name = 'sessao/ocorrencias_da_sessao.html' form_class = OcorrenciaSessaoForm model = SessaoPlenaria diff --git a/sapl/templates/relatorios/blocos_sessao_plenaria/consideracoes_finais.html b/sapl/templates/relatorios/blocos_sessao_plenaria/consideracoes_finais.html new file mode 100644 index 000000000..023871063 --- /dev/null +++ b/sapl/templates/relatorios/blocos_sessao_plenaria/consideracoes_finais.html @@ -0,0 +1,4 @@ +

Considerações Finais

+ {% for c in lst_consideracoes%} +

{{c}}

+ {% endfor %} diff --git a/sapl/templates/relatorios/relatorio_ata.html b/sapl/templates/relatorios/relatorio_ata.html index c78e471d7..d4453b985 100644 --- a/sapl/templates/relatorios/relatorio_ata.html +++ b/sapl/templates/relatorios/relatorio_ata.html @@ -14,6 +14,7 @@ {% include 'sessao/blocos_ata/oradores_ordemdia.html' %} {% include 'sessao/blocos_ata/oradores_explicacoes.html' %} {% include 'sessao/blocos_ata/ocorrencias_da_sessao.html' %} + {% include 'sessao/blocos_ata/consideracoes_finais.html' %} {% if assinatura_mesa or assinatura_presentes %} diff --git a/sapl/templates/relatorios/relatorio_sessao_plenaria.html b/sapl/templates/relatorios/relatorio_sessao_plenaria.html index 4db5d298b..e459da2b3 100644 --- a/sapl/templates/relatorios/relatorio_sessao_plenaria.html +++ b/sapl/templates/relatorios/relatorio_sessao_plenaria.html @@ -32,6 +32,8 @@ {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_quarto_ordenacao %} + {% include 'relatorios/blocos_sessao_plenaria/'|add:decimo_quinto_ordenacao %} + diff --git a/sapl/templates/sessao/blocos_resumo/ocorrencias_da_sessao.html b/sapl/templates/sessao/blocos_resumo/ocorrencias_da_sessao.html index eb9ffe195..9975217e0 100644 --- a/sapl/templates/sessao/blocos_resumo/ocorrencias_da_sessao.html +++ b/sapl/templates/sessao/blocos_resumo/ocorrencias_da_sessao.html @@ -1,3 +1,4 @@ +

TESTE

{% if object.ocorrenciasessao.conteudo %}
Ocorrências da Sessão diff --git a/sapl/templates/sessao/ocorrencia_sessao.html b/sapl/templates/sessao/ocorrencias_da_sessao.html similarity index 100% rename from sapl/templates/sessao/ocorrencia_sessao.html rename to sapl/templates/sessao/ocorrencias_da_sessao.html