A falha desta rotina e MUDA: materia protocolada nao vira pendencia no app e nao
ha erro em lugar nenhum. Em 25/08 descobrir isso custou meia hora, o shell da VPS
de outra pessoa e tres idas e voltas com o operador para ler UMA variavel de
ambiente. Os numeros que respondiam a pergunta ja eram todos calculados pela
rotina — e morriam no stdout de um processo que ninguem lia.
PassadaMaterializacao / MateriaComFalhaMaterializacao
Uma linha por passada, com os contadores que ja existiam. Tabela vazia tambem
e diagnostico: em 25/08 a resposta certa era "nunca rodou neste servidor", e
nem isso era possivel saber. A tabela de falhas e por MATERIA e nao por
tentativa — com um acervo inteiro falhando a cada ciclo, historico afogaria o
caso interessante, que e a materia que falha sozinha.
em_andamento como lock de banco, nao checagem de aplicacao
NullBooleanField(unique=True) com dois valores: True rodando, NULL terminada,
nunca False. Em Postgres NULL nao colide em indice unico, entao o banco garante
no maximo uma passada em curso. Checagem na aplicacao nao daria isso: laco e
botao sao processos distintos e entre o SELECT e o INSERT cabe a corrida.
Consequencia tratada: processo morto deixaria o lock presos para sempre — a
MESMA falha muda que este painel existe para acabar. Passada aberta ha mais de
6h e fechada como abandonada pela seguinte, com os contadores marcados.
O botao dispara PROCESSO, nao thread nem flag
O refinamento propunha o botao gravar uma solicitacao lida pelo laco. Isso nao
funciona em Franco: la nao ha laco, porque o start.sh so roda em Docker e
aquele servidor nao usa Docker. Popen desacoplado (start_new_session) funciona
com ou sem laco. Thread esta descartada por dois motivos: a passada leva perto
de uma hora e morreria com o worker do gunicorn, e N workers dariam N passadas
convertendo a mesma materia.
Sempre em --somente-novos, e isso nao e configuravel de proposito: sem a flag o
comando entra em retificacao e ZERA assinatura ja feita. Decidido para o ato
isolado de retificar um texto, nunca para varredura por um clique.
Diagnostico de -4 no _relatar_motivos
So existia ramo para -8 (JWT). O -4 e o oposto: nao e token, e DOWNLOAD — o
servidor do OnlyOffice nao alcanca a URL que o SAPL entrega. A leitura natural
("a URL deve estar errada") manda conferir do jeito errado, porque a URL
funciona de dentro; _origem_servida_confere baixa do proprio SAPL e por isso
passa limpo. Em 25/08 eram 861 falhas com SAPL_INTERNAL_URL num endereco que so
existia dentro da VPS.
Menu por caminho literal, com teste
O resolvedor de menus prefixa nome de rota sem ':' com o app da pagina
(sapl.base aqui) e levantaria excecao derrubando a tela inteira de Tabelas
Auxiliares. O ramo de caminho literal passa direto, e
test_menu_aponta_para_a_rota_do_painel compara o literal com a rota para os
dois nao divergirem em silencio. O YAML aceita check_permission, entao o item
so aparece para quem tem pode_integrar.
.gitignore: .env.bak*
O padrao cobria .env mas nao os backups que o script de deploy gera, e eles
carregam SECRET_KEY, DATABASE_URL e ASSINATURA_API_KEY em claro.
14 testes verdes (pytest sapl/integracao_hub/tests/test_painel.py).
Co-authored-by: Claude Opus 5 <noreply@anthropic.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.
- 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 script para restaurar a base de dados e migra-lá sem erros
Separa comando em funções
Finaliza script
Adiciona alerta de operação
Troca interpretador para facilitar portabilidade
Adiciona getopts para pegar parâmetros
Adiciona alerta para migração
Adiciona mensagem de uso com erro
Corrige verificação de parâmetros
Corrige confirmação de operação
Corrige verificações e criações de diretórios de log
Adiciona parada quando há erro na restauração
Adiciona criação da role postgres
Altera padrão de nome para arquivos de logs
Altera nome de função
Corrige configuração de parâmetros
Altera espaços por \t
Altera nomes dos diretórios para as restaurações
Adiciona diretório restauracoes no gitignore
Adiciona usuário da base de dados
Corrige restauração da base de dados
Corrige verificação do esquema public
Corrige verificação da role postgres
* Update scripts/restore_db.sh
Co-authored-by: Edward <9326037+edwardoliveira@users.noreply.github.com>
* retira django-bootstrap3 do projeto sapl
* retira bower sass-processor e libsass do projeto sapl
* altera origem do django-admin-bootstrapped
* commenta todas as entradas css e js em base.html
* vue create sapl-frontend
* add e configura django-webpack-loader
* add vue.config.js e configura comunicação com webpack-loader
* adequa staticfiles_dirs e ignora webpack-stats
* cria bloco de expansão para vue_content
* remove rotas do app hellow e impl multiplas entradas
* add nova entrada para gereciamento de temas
* cria plugin para carregar THEME_CUSTOM em .env
* add bootstrap ao projeto e a configuração fixa de temas
* add imports básicos para bootstrap
* move assets para sapl-frontend
* move assets para projetosexterno de tema e configura sapl project para leitura de temas através do .env
* remove theme do sapl frontend project
* retira link simbólico de entre projeto frontend e projeto de tema
* retira scss do projeto django
* altera btn-default/bootstrap3 para btn-outline-dark/bootstrap4
* altera btns de outline-dark para outlink-primary
* migra pull-right para float-right
* migra pull-left para float-left
* migra btn-excluir para btn-outline-danger
* add global entry and configure jquery
* add jquery na entrada global e migra getCookie
* remove row-fluid
* muda active para link a
* ajustes do botão salvar
* ajuste botão add participação em comissão
* ajuste do layout das mensagens de alerta e botao add detail detail
* ajusta script de votação individual
* ajuste eslint
* altera origem da imagem para etiqueta.png
* corrige eslint
* migra tela de busca de autores para sapl-frontend
* corrige fragmento de html para paginação
* ajuste de js e html em protocolo
* ajuste de layout no menu protocolo
* ajuste no formulário de proposições para sapl_frontend
* migra jquery-mask-plugin
* remove código antigo do jquery-mask-plugin
* migra jquery e algumas funções dependentes
* migra tinymce
* ajustes eslint
* ajuste de sub menus
* add campo de hora em mask
* move jquery.runner.js para sapl-frontend
* primeira versão com jquery runner funcionando
* ajusta painel ao sapl-frontend
* ajuste de tela de login
* cria entr compilação p sapl-frontend e migra jsdiff
* migra js das notas
* add import bootstrap em module global
* altera nome de função para iniciar editor de texto rico
* move scss de compilação do tema para o frontend
* adequa crud de notas de compilação ao form do django 1.11
* retira render padrão scripts css e js de image_cropping
* integra jquery runner e image cropping com jquery e lodash global
* ajustes de eslint em compilação
* ajuste de layout para notas e de código eslint
* ajuste de layout para Vides da app compilação
* altera configurações para pasta público de tema ser importada no build
* ajustes de eslint
* ajusta TAs embedded de normas para sapl-frontend
* migra botões de compilação para bootstrap4
* migra componente alert para bootstrap 4
* altera chamada a jQuery e resolve conflito com bootstrap
* altera travis.yaml
* corrige entrada doo sapl-oficial-theme para instalação trivial
* testa modo de definir versão do node no travis
* teste de configuração do travis
* ajuste de teste e das telas de erro 404 e 500
* Configura sapl-frontend e webpackloader
Configura sapl-frontend e webpack-loader com código de produção já
esportado para a sapl/static. Desta forma, tanto no travis como no
docker não existe a necessidade de instalação de node, npm e/ou yarn
* configura docker e localização do webpack-stats.json
* inicia migração da edição de dispositivos
* ajuste de chunks
* resume forma de lidar com com chunks css e js
* cria template tag para tratar chunk-vendors
* corrige menu de configuração dos TAs
* migra barra inferior da vigencia
* migra linha do tempo de vigências
* ajuste nos menus do topo da edição dinamica da compilação
* frontend produção
* ajuste de blocos
* migra layout da edição dinamica de dispositivos originais
* ajuste da seleção de tipos de vigências
* migra frontend de edição dinâmica de dispositivos
* ajst dropdown de seleção de editor de dispositivos
* migra subnav da edição avançada de dispositivos
* separa frontend em outro projeto
* Altera how-to de instalação do ambiente dev
Altera how-to de instalação do ambiente de desenvolvimento com novas instruções para colaboração com o sapl-frontend
* migra barra de navegação de parents de dispositivos
* Alterações no how-to para colab com sapl-frontend
Alterações no how-to para colab com sapl-frontend
* ajuste de docs
* sapl-frontend reinseriu language pt-br datepicker
* ajuste no form autoria multicreate para sapl-frontend
* add webpack blocks no index de painel
* refatora layout do painel para bootstrap4
* migra cadastro de autor
* migra frontend da manutenção de tipos de proposição
* migra tela de incorporação
* remove templates de compilação
* ajusta layout do form de pesquisa textual
* ajustes de layout no painel
* primeira versão checada do frontend
* Mudanças no arquivo settings para uso de Log
Loggers inseridos em sessao/views.py
alteracao no gitignore
adicionados loggers em audiencia e base
terminados os logs de comissoes
loggers na view do app materia
loggers feitos nos forms de materia e no app norma
adicionado logging no app painel
adicionados loggins no app parlamentares
adicionados loggins no app protocoloadm
adicionados loggins no app redireciona_urls
adicionados loggings no app relatorios
adicionados loggings no app rules
adicionados loggings no app api
adicionados loggings nos apps crud e compilacao
Fix typo
Adicionando informação de host no log (em progresso)
Comentando trecho com problema
correcao do logger, tirando-o das funcoes e colocando na classe
correcao do logger, tirando-o das funcoes e colocando na classe concluido
Conserta log errado no import
Remove arquivo desnecessário
Remove arquivo desnecessário
Remove chamada ao pdb
Adiciona logger ausente em DevolverProposicaoForm
correcoes nos loggins para api, audiencia e base
correcoes nos loggins para comissoes
correcoes nos loggins para compilacao
correcoes nos loggins para crud
correcoes nos loggins para materia
correcoes nos loggings para o arquivo views.py de norma
correção de bugs.
Correção de bugs no funcionamento do log. Informação de IP do host ainda não funciona corretamente.
Com endereço IP. Faltando confirmar se o endereço está correto.
correcoes nos loggings para o app norma
correcoes nos loggings para os apps painel e parlamentares
correcoes nos loggings para o app protocoloadm
mais correcoes nos loggings para o app protocoloadm
correcoes nos loggings para o app redireciona_urls
correcoes nos loggins para o app relatorios
correcoes nos loggins em forms de parlamentares
correcoes nos loggins em views de protocoloadm
correcao nos loggings de sessao
inserido o hostname no log
testando logger com username
Inserção username no log. Incompleto.
logging username nos apps materia, norma e painel
alteracao no padrao de logging até painel
alteracao no padrao de logging
novas correcoes nos loggings
* correções
* Migra para o solr
* Melhora o README do Solr
* Melhar o readme
* Melhar o readme
* Faz mudanças sugeridas
* Usa Whoosh por default, ou solr se especificado no .env
* Adiciona dDocker baseado em Alpine-Python3 com Ngnix e Gunicorn
* Atualiza docker-compose com gunicorn, ngnix e postgres
* Ajusta gitignore para ignorar postgres-data
* Adiciona script bash para conexao ao banco
* Ajusta busy-wait.sh script para sincronizar o banco(postgres) com a aplicação django no docker
* Add alias to sapldb
* Refazer Dockerfile
* Ajusta Dockerfile e docker-compose com entrypoint start.sh
* Ajusta start.sh
* Adiciona mais pontos de montagem.
* Coloca start.sh como executável: chmod +x start.sh
* Remove arquivo lixo
* Substitui gen-env.py por shell script puro
* Ajusta diretorio /var/interlegis/sapl e collect_static como volume no nginix
* Simplifica criação de diretórios.
* Adiciona ponto de montagem em postgres para importar dados
* Adiciona mais parâmetros de ambiente UNIX para entrypoint docker
* Adiciona Docker baseado em Alpine-Python3 com Ngnix e Gunicorn
* Atualiza docker-compose com gunicorn, ngnix e postgres
* Ajusta gitignore para ignorar postgres-data
* Adiciona script bash para conexao ao banco
* Ajusta busy-wait.sh script para sincronizar o banco(postgres) com a aplicação django no docker
* Add alias to sapldb
* Inicia a pesquisa textual
* Melhora o front-end da pesquisa textual
* Bug fix
* Ajusta alguns detalhes e cria botão de acesso a pesquisa
* Adiciona signals para atualizar o index
* Inicia a pesquisa textual
* Melhora o front-end da pesquisa textual
* Bug fix
* Ajusta alguns detalhes e cria botão de acesso a pesquisa
* Adiciona signals para atualizar o index
* Insere ao README o comando de indexação
* Atualiza versão do Haystack
* Remove pacote haystack antigo
Coloca url de search no padrão
Na versão anterior do queryset era retornado apenas parlamentares que
possuissem ao menos 1 presença no período selecionado. Na versão deste
commit, passa estar no resultado parlamentares com ausencia total de
tipo no período compreendido. Total de tipo (sessao_count ou ordem_count)
pois o exclude no final do queryset remove as ausências totais.
Ausências totais (os dois juntos) é uma informação relevante
a ser dada, porém, seria mais produtiva com um filtro específico de
legislatura agregado ao período ou não. Veja, como não existe restrição
de legislatura, parlamentares de 50 anos atrás, sairia no relatório sem
o exclude no final do queryset, coisa esta um tanto poluidora e
irrelevante, em contraste com ausências totais na legislatura atual, por
exemplo. Não há como esses antigos parlamentares (presentes na base para
registro histórico) não aparecerem a não ser com um filtro específico
para legislatura ou intervalo de legislaturas.