From cf8b06265d59914bec9aa327008fd3904b0dbeb8 Mon Sep 17 00:00:00 2001 From: rangelbruno Date: Sat, 21 Feb 2026 17:24:26 -0300 Subject: [PATCH] =?UTF-8?q?Feat(OnlyOffice):=20Fonte=20Arial=20padr=C3=A3o?= =?UTF-8?q?,=20SweetAlert2=20e=20fix=20beforeunload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fonte Arial forçada em todos os slots XML (ascii, hAnsi, eastAsia, cs) nos documentos criados via python-docx e na numeração de matéria - Substituir alert() nativo por SweetAlert2 nos 3 templates do editor - Corrigir beforeunload que disparava sem alterações no documento --- sapl/base/onlyoffice_template_views.py | 4 +- sapl/materia/onlyoffice_materia_views.py | 8 +-- sapl/materia/onlyoffice_views.py | 4 +- sapl/norma/onlyoffice_views.py | 4 +- sapl/protocoloadm/onlyoffice_views.py | 4 +- .../materia/onlyoffice_confirmar_editor.html | 12 +++- sapl/templates/materia/onlyoffice_editor.html | 29 ++++++-- .../onlyoffice/onlyoffice_editor.html | 29 ++++++-- sapl/utils_template.py | 66 +++++++++++++++++-- 9 files changed, 130 insertions(+), 30 deletions(-) diff --git a/sapl/base/onlyoffice_template_views.py b/sapl/base/onlyoffice_template_views.py index a5c6401bc..f7d756d0d 100644 --- a/sapl/base/onlyoffice_template_views.py +++ b/sapl/base/onlyoffice_template_views.py @@ -117,12 +117,12 @@ def template_onlyoffice_download(request, pk): # Se não tem arquivo, cria um documento em branco usando python-docx try: - from docx import Document from docx.shared import Inches, Pt from docx.enum.text import WD_ALIGN_PARAGRAPH + from sapl.utils_template import criar_documento_padrao from io import BytesIO - doc = Document() + doc = criar_documento_padrao() # Adiciona cabeçalho padrão section = doc.sections[0] diff --git a/sapl/materia/onlyoffice_materia_views.py b/sapl/materia/onlyoffice_materia_views.py index 4543b142c..e7ebb663d 100644 --- a/sapl/materia/onlyoffice_materia_views.py +++ b/sapl/materia/onlyoffice_materia_views.py @@ -157,10 +157,10 @@ def materia_onlyoffice_download(request, pk): # Fallback: Se python-docx não está instalado ou houve erro try: - from docx import Document + from sapl.utils_template import criar_documento_padrao from io import BytesIO - doc = Document() + doc = criar_documento_padrao() doc.add_heading(f'{materia.tipo} {materia.numero}/{materia.ano}', 0) doc.add_paragraph(f'Ementa: {materia.ementa}') doc.add_paragraph('') @@ -478,10 +478,10 @@ def docacessorio_onlyoffice_download(request, pk): # Fallback: Se python-docx não está instalado ou houve erro try: - from docx import Document + from sapl.utils_template import criar_documento_padrao from io import BytesIO - doc = Document() + doc = criar_documento_padrao() doc.add_heading(f'{documento.tipo} - {documento.nome}', 0) if documento.ementa: doc.add_paragraph(f'Ementa: {documento.ementa}') diff --git a/sapl/materia/onlyoffice_views.py b/sapl/materia/onlyoffice_views.py index 1697de0c1..28fadbd68 100644 --- a/sapl/materia/onlyoffice_views.py +++ b/sapl/materia/onlyoffice_views.py @@ -164,10 +164,10 @@ def onlyoffice_download(request, pk): # Fallback: Se python-docx não está instalado ou houve erro try: - from docx import Document + from sapl.utils_template import criar_documento_padrao from io import BytesIO - doc = Document() + doc = criar_documento_padrao() doc.add_heading(f'Proposição {proposicao.tipo}', 0) doc.add_paragraph(f'Ementa: {proposicao.descricao}') doc.add_paragraph('') diff --git a/sapl/norma/onlyoffice_views.py b/sapl/norma/onlyoffice_views.py index cf58827fa..fdc5cb763 100644 --- a/sapl/norma/onlyoffice_views.py +++ b/sapl/norma/onlyoffice_views.py @@ -152,10 +152,10 @@ def norma_onlyoffice_download(request, pk): # Fallback: Se python-docx não está instalado ou houve erro try: - from docx import Document + from sapl.utils_template import criar_documento_padrao from io import BytesIO - doc = Document() + doc = criar_documento_padrao() doc.add_heading(f'{norma.tipo} {norma.numero}/{norma.ano}', 0) doc.add_paragraph(f'Ementa: {norma.ementa}') doc.add_paragraph('') diff --git a/sapl/protocoloadm/onlyoffice_views.py b/sapl/protocoloadm/onlyoffice_views.py index d540c7376..53ce17c6c 100644 --- a/sapl/protocoloadm/onlyoffice_views.py +++ b/sapl/protocoloadm/onlyoffice_views.py @@ -152,10 +152,10 @@ def docadm_onlyoffice_download(request, pk): # Fallback: Se python-docx não está instalado ou houve erro try: - from docx import Document + from sapl.utils_template import criar_documento_padrao from io import BytesIO - doc = Document() + doc = criar_documento_padrao() doc.add_heading(f'Documento Administrativo {documento.tipo}', 0) doc.add_paragraph(f'Número: {documento.numero}/{documento.ano}') doc.add_paragraph(f'Assunto: {documento.assunto}') diff --git a/sapl/templates/materia/onlyoffice_confirmar_editor.html b/sapl/templates/materia/onlyoffice_confirmar_editor.html index 570560042..694bfde07 100644 --- a/sapl/templates/materia/onlyoffice_confirmar_editor.html +++ b/sapl/templates/materia/onlyoffice_confirmar_editor.html @@ -48,11 +48,13 @@ +