Repository navigation
Permite os relatórios por autor sem autor, limitados por período - #3869
Open
joaohortsenado wants to merge 1 commit into
Open
joaohortsenado wants to merge 1 commit into
joaohortsenado wants to merge 1 commit into
Conversation
Desde o 3.1.165-RC3, Matérias por Autor e Normas por Autor devolviam "Não foram encontradas..." quando nenhum autor era selecionado, sem explicar o motivo (OSTicket #885134, Mamborê/PR). - Sem autor, a pesquisa exige o período (data inicial e final); sem nenhum dos dois, o formulário mostra o erro. - Matérias sem autor: lista as matérias do período, uma vez cada, com todos os autores. - Normas sem autor: agrupa as normas do período pelo primeiro autor, como antes do RC3. - Com o formulário inválido e "Gerar relatório PDF" marcado, os relatórios voltam à tela com os erros em vez de gerar um PDF vazio. - Prefetch das autorias e dos autores nas duas listagens.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descrição
Os relatórios Matérias por Autor e Normas por Autor voltam a aceitar pesquisa sem autor. Nesse caso, o período passa a ser obrigatório.
Duas mudanças de apoio:
RelatorioMixin: com "Gerar relatório PDF" marcado e o formulário inválido, os relatórios voltam à tela com os erros em vez de gerar um PDF vazio. Isso vale para todos os relatórios. As 14 views que usam o mixin já retornavam o contexto sem resultados quando o form era inválido, então o PDF desse caso saía sempre vazio.autoria_set__autor__autor_related(autorianorma_set__...nas normas). Com 40 matérias de 2 autores cada, a tela com autor caiu de 207 para 10 queries, e a contagem não cresce com o número de matérias. Isso importa porque a pesquisa sem autor pode listar o ano inteiro.Issue Relacionada
Não há issue aberta. A demanda veio do OSTicket #885134 (Câmara Municipal de Mamborê/PR). O suporte reproduziu o problema também em Pato Branco/PR.
Motivação e Contexto
O commit
3b5e3747("Fix duplicate normas/matérias in author reports and prevent unfiltered queries"), que entrou no 3.1.165-RC3, fez os dois filtros devolveremnone()quando não há autor. A ideia era evitar uma varredura da tabela inteira comORDER BYem campo relacionado. Só que o formulário não diz que o autor é obrigatório, e a Câmara precisa do relatório sem autor para alimentar o PROLEGIS do TCE-PR.Este PR mantém a proteção de outra forma: sem autor, o período fechado limita a consulta, e a ordenação não usa campos de
autoria. Assim, não há JOIN nas matérias e não aparecem as duplicatas que motivaram o3b5e3747. Nas normas, o filtroprimeiro_autor=Truee oORDER BY autorianorma__autorusam o mesmo JOIN (conferido no SQL gerado).O mesmo chamado relata o PDF de Matérias por Autor saindo vazio. Esse defeito também veio do
3b5e3747, que removeumaterias_resultadodo contexto sem atualizar o template do PDF, e já está corrigido no 3.1.x por3fe3f966(#3849). Este PR inclui um teste de regressão para ele.Como Isso Foi Testado?
pytest sapl/relatorios/tests.py: os 9 testes passam (os 7 novos e os 2 que já existiam), no Postgres 10.5 com a imagem do SAPL.3.1.xatual: os 5 testes do comportamento novo falham. O teste do PDF passa nos dois, porque a correção do Fix N+1 queries in sessão/relatórios and remove unused painel views #3849 já está no 3.1.x.Capturas de Tela (se apropriado):
Não se aplica.
Tipos de Mudanças
Checklist: