- Renomeia DEBUG para DJANGO_DEBUG nos docker-compose de dev,
alinhando com o que settings.py espera via python-decouple
- Corrige bug em menus.py onde itens com check_permission tinham
a URL limpa mesmo quando o usuário possuía a permissão,
causando o menu Sistema vazio
Signed-off-by: rangelbruno <rangelbruno@users.noreply.github.com>
Adicionada verificação de presidente da Mesa Diretora vigente na lógica
de permissão pode_assinar do DocumentoAcessorioCrud.DetailView. O sistema
busca a SessaoLegislativa e MesaDiretora vigentes, identifica o parlamentar
com cargo Presidente e verifica se o usuário logado é operador desse autor.
Condição is_autor era restritiva demais — superusuários e usuários com
permissão change_documentoacessorio não viam o botão. Adicionada variável
pode_assinar no contexto que inclui is_autor, superuser e permissão.
Adiciona funcionalidade de assinatura digital com certificado A1 para
DocumentoAcessório, replicando o fluxo já existente em MateriaLegislativa.
- Novos campos no model: pdf_assinado, assinatura_info, assinado_em, assinado_por
- Views: assinar A1, PDF assinado, verificar e remover assinatura
- Template detail com botão de assinar, card de info e modal parametrizado
- Modal reutilizável via urlPrefix (retrocompatível com MateriaLegislativa)
- Contexto is_autor baseado nos operadores de autores da matéria-pai
O canvas do carimbo era criado com pagesize=A4 fixo. Se o PDF original
tivesse dimensões diferentes, o mergePage expandia o MediaBox, gerando
página maior que A4 e cortando o carimbo ao imprimir/visualizar.
Agora lê as dimensões reais da última página do PDF original.
- Redesign da página 404 com layout responsivo e navegação
- Redireciona usuários não autenticados para /login/ no 404
- Protege nav_run contra resolver_match None
- Mescla has_iframe: getattr seguro + leitura/gravação do parâmetro ?iframe= na sessão
Adiciona botão "Criar e Editar no OnlyOffice" no formulário de criação de
Documento Acessório, permitindo criar o documento sem upload de arquivo e
redirecionar para o editor OnlyOffice. Corrige também NoReverseMatch na
URL de detalhe do documento acessório no editor.
Co-Authored-By: rangelbruno <rangelbruno@users.noreply.github.com>
Adiciona parâmetro em Sistema > Configurações da Aplicação para escolher
entre nome político (parlamentar) e nome civil na assinatura digital de
Matérias Legislativas. Inclui atalho no menu /sistema/.
Usa Django cache para rastrear o ciclo forcesave → callback → check_doc,
evitando que o polling retorne true antes do callback salvar o arquivo.
Aplica a correção em Matéria, Documento Acessório e Proposição.
- Adiciona botão "Salvar e Voltar" com forcesave no editor de Matéria e Doc Acessório
- Corrige callbacks que não reescreviam a URL de download do OnlyOffice (causava falha no salvamento em ambiente Docker)
- Adiciona endpoints check-doc e forcesave para Matéria e Doc Acessório
- Template genérico agora suporta forcesave condicionalmente
Corrige o problema onde o botão Salvar e Voltar no editor OnlyOffice da
proposição redirecionava antes do documento ser salvo, mostrando
"Documento não criado". A solução usa o Command Service do OnlyOffice
para forçar o salvamento (forcesave) e polling server-side para
confirmar que o documento foi persistido antes de redirecionar.
Adiciona endpoints check-doc e forcesave para proposição.
- Adiciona botão "Editar com OnlyOffice" na detail de Matéria Legislativa
para administradores, operadores de matéria e protocolo
- Adiciona botão OnlyOffice na listagem e detail de Documento Acessório
- Refatora URLs do OnlyOffice usando SAPL_INTERNAL_URL para comunicação
entre containers Docker (evita URLs hardcoded)
- Centraliza lógica de URL em build_onlyoffice_url() e
get_onlyoffice_browser_url() no utils.py
Adiciona automaticamente o cabeçalho com tipo, número e ano
no início do documento da matéria legislativa após o recebimento
da proposição. Ex: "INDICAÇÃO 10 / 2026"
- Adiciona verificação is_operador_protocolo na IndexView
- Exibe card com atalhos para proposições pendentes e recebidas
- Card visível apenas para usuários com permissão de protocolo
Signed-off-by: rangelbruno <brunojp.rangel@gmail.com>
Antes: o corpo do template era removido e substituído por texto padrão
Agora: mantém todo o conteúdo do template e substitui apenas placeholders
Placeholders suportados: {titulo}, {ementa}, {descricao}, {tipo}, {data}
Signed-off-by: rangelbruno <brunojp.rangel@gmail.com>
- Remove substituição de URLs para sapl-dev:8000 que quebrava em produção
- Usa ONLYOFFICE_URL do settings para substituir host nas URLs de callback
Signed-off-by: rangelbruno <brunojp.rangel@gmail.com>
Integra funcionalidades da branch franco-rocha:
- Templates de documentos para OnlyOffice
- Integração completa do editor em todos os tipos de documentos
- Correções de hash_code para documentos PDF
- Geração de PDF para assinatura digital
Conflitos resolvidos mantendo configurações da 3.1.x:
- onlyoffice_materia_views.py: mantém URLs via settings
- urls.py: mantém rotas de assinatura digital A1/A3
- Botão "Editar com OnlyOffice" só aparece para autores e se não foi protocolado
- Botão "Assinar PDF Digitalmente" só aparece para autores
- Adiciona verificação is_autor no contexto do DetailView
- Botão "Editar com OnlyOffice" só aparece para autores e se não foi protocolado
- Botão "Assinar PDF Digitalmente" só aparece para autores
- Adiciona verificação is_autor no contexto do DetailView
Quando um documento é editado via OnlyOffice durante a fase de confirmação,
o hash_code agora é regenerado automaticamente para manter o link de
confirmação válido.
Quando um documento é editado via OnlyOffice durante a fase de confirmação,
o hash_code agora é regenerado automaticamente para manter o link de
confirmação válido.
- Adiciona botão "Editar com OnlyOffice" na página de confirmação de proposição
- Permite que usuários com permissão de protocolo editem o documento durante a confirmação
- Adiciona validação de hash para segurança do link de confirmação
- Corrige permissão de download para permitir acesso a usuários do protocolo
- Adiciona botão "Editar com OnlyOffice" na página de confirmação de proposição
- Permite que usuários com permissão de protocolo editem o documento durante a confirmação
- Adiciona validação de hash para segurança do link de confirmação
- Corrige permissão de download para permitir acesso a usuários do protocolo
Remove lógica que substituía URLs de download do OnlyOffice
por endereços internos do Docker. Com OnlyOffice remoto, as
URLs retornadas já são acessíveis publicamente.
- Altera URL padrão do OnlyOffice para https://onlyoffice.legisinc.com.br
- Configura JWT para autenticação com o servidor OnlyOffice remoto
- Remove serviço OnlyOffice local do docker-compose-dev-db.yml
- Adiciona carimbo visual ANTES de assinar digitalmente
- Garante que a assinatura protege o documento completo
- Resolve problema de assinatura corrompida no validador ITI
- Implementa sistema de assinatura digital para matérias legislativas
- Suporte a certificados A1 (.pfx/.p12) com validação de senha
- Carimbo visual no PDF com nome, CPF, data e logo da câmara
- Modal de assinatura com interface amigável
- Campos no modelo: pdf_assinado, assinatura_info, assinado_em, assinado_por
- Migração 0088 para novos campos de assinatura
- Adiciona dependências: pyhanko, pyhanko-certvalidator, cryptography
UI/UX:
- Move subnav (tabs de navegação) para abaixo do menu principal
- Novo estilo minimalista para as tabs com indicador azul
- Scroll horizontal em dispositivos móveis
- Adiciona botão "Gerar PDF para Assinatura" na página de detalhe da matéria
- Integra com API de conversão do OnlyOffice para converter DOCX para PDF
- Botão só aparece quando a matéria possui número de protocolo e documento
- PDF é exibido inline no navegador para facilitar assinatura digital
Signed-off-by: rangelbruno <rangel.bruno@gmail.com>
- Adiciona botão "Gerar PDF para Assinatura" na página de detalhe da matéria
- Integra com API de conversão do OnlyOffice para converter DOCX para PDF
- Botão só aparece quando a matéria possui número de protocolo e documento
- PDF é exibido inline no navegador para facilitar assinatura digital
Signed-off-by: rangelbruno <rangel.bruno@gmail.com>
- Corrige geração de hash_code ao enviar proposições com texto_original (PDF)
- Adiciona verificação de arquivo existente antes de gerar hash no recibo
- Melhora UI/UX: filtros clicáveis na lista de proposições
- Aumenta largura máxima dos containers para 1200px
- Permite acesso de administradores ao detalhe da proposição
- Adiciona botão Receber na lista de proposições pendentes
- Corrige cor do título/cabeçalho das tabelas para preto
- Remove títulos duplicados nos templates
- Corrige geração de hash_code ao enviar proposições com texto_original (PDF)
- Adiciona verificação de arquivo existente antes de gerar hash no recibo
- Melhora UI/UX: filtros clicáveis na lista de proposições
- Aumenta largura máxima dos containers para 1200px
- Permite acesso de administradores ao detalhe da proposição
- Adiciona botão Receber na lista de proposições pendentes
- Corrige cor do título/cabeçalho das tabelas para preto
- Remove títulos duplicados nos templates