fix: numera páginas do PDF na ordem natural das folhas quando não há fpage - #1310
Open
Rossi-Luciano wants to merge 2 commits into
Open
fix: numera páginas do PDF na ordem natural das folhas quando não há fpage#1310Rossi-Luciano wants to merge 2 commits into
Rossi-Luciano wants to merge 2 commits into
Conversation
Corrige parte da issue scieloorg#1302: artigos de publicacao continua (com elocation-id, sem fpage/lpage) mostravam ": -" no rodape e no CITE AS em vez do identificador eletronico. Adiciona location_label em extract_footer_data, calculado a partir de fpage/lpage quando presentes, ou de elocation-id como alternativa. Tambem remove o " | " inicial do rodape do Material Suplementar, que aparecia mesmo essa secao nunca recebendo numero de pagina (paginacao independente do corpo do artigo). Nao mexe na numeracao de pagina em si (start_page_number, mecanismo diferente entre a 1a pagina e as demais); fica para PR separado.
…fpage Corrige a parte de numeracao de pagina da issue scieloorg#1302: sem fpage (publicacao continua), a 1a folha ficava sem numero e a 2a mostrava "1" (start_page_number caia para 0). Muda o fallback para 1, para que a numeracao siga a ordem natural das folhas (1, 2, 3...) desde a primeira. Unifica o mecanismo de numeracao entre a 1a pagina e as demais: docx_page_vol_issue_year_pipe agora usa o mesmo campo PAGE dinamico que docx_second_footer_pipe, em vez de escrever footer_data['fpage'] como texto estatico (que ficava vazio sem fpage). Atualiza o teste de renderizacao real que fixava o comportamento antigo (test_rendered_page_layout.py, dos PRs scieloorg#1295/scieloorg#1296): aquele teste tratava "pagina 2 mostra 1" como correto, um efeito colateral da correcao de layout daqueles PRs, nao uma decisao deliberada sobre numeracao. A observacao da scieloorg#1302 prevalece.
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.
O que esse PR faz?
Corrige a parte de numeração de página da issue #1302, que não foi coberta pelo #1309 (fases 1+2): quando não há
<fpage>(artigos de publicação contínua), a numeração de página do PDF ficava incorreta.start_page_numbercaía para0na ausência defpage, então a 1ª folha ficava sem número visível e a 2ª mostrava"1".1, então a numeração segue a ordem natural das folhas (folha 1 → "1", folha 2 → "2", ...), como pede a [PDF Generator] Inconsistências na numeração de páginas e dados de localização no rodapé do PDF` #1302.Também unifica o mecanismo de numeração entre a 1ª página e as demais:
docx_page_vol_issue_year_pipepassa a usar o mesmo campoPAGEdinâmico do Word quedocx_second_footer_pipe, em vez de escreverfooter_data['fpage']como texto estático (que ficava vazio quando não háfpage).Nota sobre o teste alterado:
test_rendered_page_layout.py::test_body_starts_page_one_without_fpage_defaults_to_one(dos PRs #1295/#1296) afirmava que a página 2 mostrar"1"era o comportamento correto. Isso foi um efeito colateral de uma correção de layout (o corpo do artigo passando a começar na página 1), não uma decisão deliberada sobre numeração. A #1302 identificou que esse comportamento está errado, e a observação da #1302 prevalece. O teste foi renomeado e atualizado para refletir o novo comportamento esperado.Onde a revisão poderia começar?
packtools/sps/formats/pdf/pipeline/docx.py, funçãopipeline_docx(fallback destart_page_number) edocx_page_vol_issue_year_pipe(troca de texto estático por campoPAGE).Como este poderia ser testado manualmente?
python -m packtools.sps.formats.pdf_generator \ -i tests/fixtures/pdf/a4.xml \ -l tests/fixtures/pdf/layout.docx \ -o /tmp/a4.pdf --libreoffice-binary libreofficePáginas 1, 2 e 3: devem mostrar
1 | VOL...,2 | VOL...,3 | VOL...respectivamente (antes: página 1 sem número, página 2 mostrava1).python -m packtools.sps.formats.pdf_generator \ -i tests/fixtures/pdf/a1.xml \ -l tests/fixtures/pdf/layout.docx \ -o /tmp/a1.pdf --libreoffice-binary libreofficeArtigo com
fpage=271: páginas 1 a 11 devem continuar mostrando271a281normalmente (sem regressão).Testes automatizados:
pytest tests/sps/formats/pdf(inclui o teste de renderização real via LibreOffice, que já roda neste ambiente).Algum cenário de contexto que queira dar?
Depende do #1309 (fases 1+2 da mesma issue #1302) já estar mergeado ou revisado antes deste, já que a branch parte dele. Fecha a parte de numeração de página da #1302; a issue pode ser fechada depois que os dois PRs forem mergeados.
Screenshots
Antes/depois da numeração de páginas 1 e 2 de
a4.xml(semfpage):Quais são os tickets relevantes?
Closes #1302 (em conjunto com #1309).
Referências
N/A
Segurança da informação (NSI.04)
Este PR manipula dados sensíveis ou pessoais (LGPD)?
Este PR altera autenticação, autorização, controle de acesso ou gerenciamento de sessão?
Este PR introduz, atualiza ou remove dependências de terceiros?
Este PR foi validado pelo pipeline de segurança (SonarQube / Trivy)?
Este PR concatena, monta ou executa comandos SQL, HTML ou JavaScript a partir de entrada externa?
Este PR expõe novos endpoints, telas ou serviços?
Algum segredo, senha, chave ou token está sendo adicionado ao código-fonte?