Skip to content

Apresenta a página do artigo com ou sem Crossmark via CrossmarkPage#414

Draft
Copilot wants to merge 3 commits intomasterfrom
copilot/update-article-page-html
Draft

Apresenta a página do artigo com ou sem Crossmark via CrossmarkPage#414
Copilot wants to merge 3 commits intomasterfrom
copilot/update-article-page-html

Conversation

Copy link
Contributor

Copilot AI commented Mar 6, 2026

Integra o modelo CrossmarkPage do opac_schema ao pipeline de renderização de artigos, passando a URL da política Crossmark ao HTMLGenerator quando disponível para o periódico e idioma do artigo.

O que esse PR faz?

  • requirements.txt: atualiza opac_schema para o commit 60cde78 que adiciona o campo url ao modelo CrossmarkPage, e packtools para o commit que adiciona crossmark_policy_page ao HTMLGenerator
  • controllers.py: importa CrossmarkPage; adiciona get_crossmark_policy_page(journal, lang) que retorna crossmark.url quando há registro ativo com URL preenchida, ou None
  • views.py: propaga crossmark_policy_page por article_detail_v3render_htmlrender_html_from_xmlHTMLGenerator.parse()
  • tests/: adiciona helper makeOneCrossmarkPage() e CrossmarkPolicyPageControllerTestCase (5 cenários: ativo com url, ativo sem url, inativo, ausente, idioma divergente)
# Comportamento resultante em render_html_from_xml:
generator = HTMLGenerator.parse(
    xml,
    valid_only=False,
    gs_abstract=gs_abstract,
    output_style="website",
    xslt=xslt,
    crossmark_policy_page=crossmark_policy_page,  # None quando sem registro ativo ou sem url
)

Onde a revisão poderia começar?

opac/webapp/controllers.pyget_crossmark_policy_page(), depois opac/webapp/main/views.pyrender_html_from_xml e article_detail_v3.

Como este poderia ser testado manualmente?

  1. Criar um registro CrossmarkPage no banco com journal=<periódico>, language='pt', is_doi_active=True, doi='10.1590/seu-doi', url='https://www.crossref.org/crossmark-policy'
  2. Acessar a página de um artigo desse periódico com ?lang=pt
  3. Verificar no HTML gerado a presença do widget Crossmark (crossmark-cdn.crossref.org/widget) e do badge data-target="crossmark"
  4. Remover o registro (ou setar is_doi_active=False, ou deixar url vazio) e confirmar que o HTML não contém elementos Crossmark

Algum cenário de contexto que queira dar?

CrossmarkPage foi adicionado ao opac_schema recentemente (sem tag ainda); o campo url foi acrescentado ao modelo para armazenar diretamente a URL da página de política, dispensando a construção manual da URL a partir do DOI. packtools tem PR aberto (#1120) adicionando crossmark_policy_page ao HTMLGenerator. Ambas as dependências são referenciadas por SHA de commit até que novas releases sejam publicadas.

Screenshots

N/A

Quais são tickets relevantes?

N/A

Referências

Original prompt

This section details on the original issue you should resolve

<issue_title>Gere a página do artigo com ou sem o crossmark</issue_title>
<issue_description>### Descrição da tarefa
Ao apresentar a página do artigo, insira a chamada ao gerador de html considerando os dados de CrossmarkPage

# Uso
generator = HTMLGenerator.parse(
    xml_tree,
    crossmark_policy_page='https://example.org/crossmark-policy'
)
html = generator.generate('pt')

e

class CrossmarkPage(Document):
    doi = StringField(required=True)
    is_doi_active = BooleanField(required=True, default=True)
    language = StringField(max_length=5, required=True)
    journal = ReferenceField(Journal, reverse_delete_rule=CASCADE, required=True)
    created_at = DateTimeField()
    updated_at = DateTimeField()

atualize a chamada para o HTMLGenerator

</issue_description>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot AI changed the title [WIP] Update article page to include HTMLGenerator integration Gera a página do artigo com ou sem Crossmark via CrossmarkPage Mar 6, 2026
@robertatakenaka robertatakenaka changed the title Gera a página do artigo com ou sem Crossmark via CrossmarkPage Apresenta a página do artigo com ou sem Crossmark via CrossmarkPage Mar 7, 2026
journal=journal, language=lang, is_doi_active=True
).first()
if crossmark:
return "https://doi.org/{}".format(crossmark.doi)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot use crossmark.url

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 3a399fa. Updated get_crossmark_policy_page() to return crossmark.url directly. Also bumped the opac_schema dependency to commit 60cde78 which adds the url field to CrossmarkPage.

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Apresenta a página do artigo com ou sem o crossmark

2 participants