Skip to content

Aprimorar nomes dos relacionamentos de Journal representados por InlinePanel#1313

Merged
robertatakenaka merged 4 commits intomainfrom
copilot/improve-inlinepanel-relationship-names
Feb 7, 2026
Merged

Aprimorar nomes dos relacionamentos de Journal representados por InlinePanel#1313
robertatakenaka merged 4 commits intomainfrom
copilot/improve-inlinepanel-relationship-names

Conversation

Copy link
Contributor

Copilot AI commented Feb 7, 2026

O que esse PR faz?

Renomeia related_name de seis relacionamentos ParentalKey do modelo Journal para eliminar ambiguidade e melhorar consistência com convenções Python.

Mudanças:

  • journalsocialnetworksocial_networks (convenção snake_case, plural)
  • annotationnotes (alinhado com label do InlinePanel)
  • accepted_documment_typesaccepted_document_types (correção de typo)
  • file_oaopen_science_form_files (descritivo)
  • ecommitteeethics_committee (abreviação expandida)
  • reviewpeer_review (desambiguação)

Impacto técnico:

  • 7 arquivos atualizados: models, proxys, wagtail_hooks, formats, journalpage (model + template), migrations
  • Migration criada: 0058_rename_journal_inline_panel_related_names.py para documentar as alterações no Django
  • Nota sobre journalpage: Não foi necessária migration para journalpage, pois as alterações são apenas código (uso dos novos related_names) e não modificações de campos do modelo JournalPage
  • Exemplo de uso:
# Antes
journal.journalsocialnetwork.all()
journal.annotation.all()

# Depois
journal.social_networks.all()
journal.notes.all()

Onde a revisão poderia começar?

journal/models.py nas linhas dos ParentalKey alterados (1377, 1587, 1672, 1686, 1864, 2747), seguido por journal/proxys.py para validar consistência dos InlinePanel, e finalmente journal/migrations/0058_rename_journal_inline_panel_related_names.py para verificar a migration.

Como este poderia ser testado manualmente?

  1. Build do ambiente Docker: make build
  2. Executar a migration: make django_migrate
  3. Acessar admin Wagtail de Journal
  4. Verificar que todos os InlinePanels (Social Network, Notes, Ethics Committee, etc.) carregam corretamente
  5. Confirmar que dados existentes aparecem sem erros
  6. Testar página "About" do journal (/journal/{acron}/about/)

Algum cenário de contexto que queira dar?

Os related_name originais eram legado sem padrão definido - alguns camelCase, outros com abreviações, um com typo. A refatoração segue o princípio de que nomes devem refletir o help_text do modelo e a label do InlinePanel onde aplicável. Embora related_name seja metadata do ORM e não altere o schema do banco, uma migration foi criada para documentar as mudanças e manter consistência no sistema de migrations do Django. As alterações no app journalpage são apenas atualizações de código para usar os novos related_names, sem necessidade de migration própria pois o JournalPage não define campos customizados.

Screenshots

N/A - mudanças internas de nomenclatura sem impacto visual.

Quais são tickets relevantes?

Issue original: "Aprimorar o nomes dos relacionamentos de Journal representados por InlinePanel"

Referências

  • Django Parental Key documentation
  • Wagtail InlinePanel best practices
  • Django Migrations documentation
Original prompt

This section details on the original issue you should resolve

<issue_title>Aprimorar o nomes dos relacionamentos de Journal representados por InlinePanel</issue_title>
<issue_description>### Descrição da tarefa
Aprimorar o nomes dos relacionamentos de Journal representados por InlinePanel.
Os nomes usados no related_name não estão suficientemente significativos, estão ambíguos. Use o help_text para ajudar a renomeá-los e/ou o nome do panels onde o InlinePanel está inserido.</issue_description>

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


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits February 7, 2026 22:20
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot AI changed the title [WIP] Refactor InlinePanel relationship names for Journal Aprimorar nomes dos relacionamentos de Journal representados por InlinePanel Feb 7, 2026
Copilot AI requested a review from robertatakenaka February 7, 2026 22:25
FieldPanel("submission_online_url"),
FieldPanel("main_collection"),
InlinePanel("journalsocialnetwork", label=_("Social Network")),
InlinePanel("social_networks", label=_("Social Network")),
Copy link
Member

Choose a reason for hiding this comment

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

@copilot crie os arquivos das migrações

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Arquivo de migração criado em commit e33a7f2. O arquivo 0058_rename_journal_inline_panel_related_names.py documenta as alterações dos related_name para os 6 modelos (JournalSocialNetwork, Annotation, AcceptedDocumentTypes, FileOpenScience, Ecommittee, Review).

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
brief_history = journal.history.get_object_in_preferred_language(language=language)
focus_and_scope = journal.focus.get_object_in_preferred_language(language=language)
social_network = journal.journalsocialnetwork.all()
social_network = journal.social_networks.all()
Copy link
Member

Choose a reason for hiding this comment

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

@copilot journalpage tem migração para serem criadas?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Não, journalpage não precisa de migration. As mudanças em journalpage/models.py são apenas código (chamadas aos novos related_names do Journal) e não alterações de campos do modelo JournalPage. O modelo JournalPage herda apenas de Page e RoutablePageMixin sem definir campos próprios.

Copilot AI requested a review from robertatakenaka February 7, 2026 22:55
@robertatakenaka robertatakenaka marked this pull request as ready for review February 7, 2026 23:19
Copilot AI review requested due to automatic review settings February 7, 2026 23:19
@robertatakenaka robertatakenaka merged commit 9246072 into main Feb 7, 2026
4 checks passed
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Este PR renomeia related_name de relacionamentos ParentalKey do modelo Journal para reduzir ambiguidade e padronizar nomenclatura, atualizando os pontos de uso (Wagtail panels, hooks, formatação e journalpage) e adicionando uma migration para registrar a mudança no estado do Django.

Changes:

  • Renomeia 6 related_name em modelos do app journal e atualiza usos em InlinePanel, queryset prefetch e formatter.
  • Atualiza o journalpage (model + template) para usar accepted_document_types e os novos related names.
  • Adiciona migration 0058 com AlterField para refletir as mudanças no estado das migrations.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
journal/models.py Atualiza related_name nos ParentalKey e ajusta referências de InlinePanel no próprio app journal.
journal/proxys.py Atualiza os InlinePanel(...) para apontarem para os novos related_name.
journal/wagtail_hooks.py Atualiza prefetch_related(...)/strings de relações para os novos nomes.
journal/formats/articlemeta_format.py Atualiza acesso reverso de annotation para notes ao montar metadados.
journal/migrations/0058_rename_journal_inline_panel_related_names.py Registra as alterações de related_name via AlterField no estado das migrations.
journalpage/models.py Atualiza o acesso aos relacionamentos renomeados e a chave de contexto accepted_document_types.
journalpage/templates/journalpage/about.html Atualiza a variável iterada para accepted_document_types.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

brief_history = journal.history.get_object_in_preferred_language(language=language)
focus_and_scope = journal.focus.get_object_in_preferred_language(language=language)
social_network = journal.journalsocialnetwork.all()
social_network = journal.social_networks.all()
Copy link

Copilot AI Feb 7, 2026

Choose a reason for hiding this comment

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

social_network recebe um queryset/lista (journal.social_networks.all()), mas o nome da variável/contexto está no singular e agora diverge do related_name (social_networks). Para evitar ambiguidade e facilitar manutenção, considere renomear para social_networks (incluindo a chave no context e o uso no template).

Suggested change
social_network = journal.social_networks.all()
social_networks = journal.social_networks.all()

Copilot uses AI. Check for mistakes.
review = journal.review.get_object_in_preferred_language(language=language)
ecommittee = journal.ecommittee.get_object_in_preferred_language(language=language)
review = journal.peer_review.get_object_in_preferred_language(language=language)
ecommittee = journal.ethics_committee.get_object_in_preferred_language(language=language)
Copy link

Copilot AI Feb 7, 2026

Choose a reason for hiding this comment

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

A variável local ecommittee continua usando o nome legado, mas agora aponta para journal.ethics_committee.... Para manter consistência e reduzir confusão, renomeie a variável (e a chave no context, se aplicável) para ethics_committee.

Copilot uses AI. Check for mistakes.
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.

Aprimorar o nomes dos relacionamentos de Journal representados por InlinePanel

2 participants