Aprimorar nomes dos relacionamentos de Journal representados por InlinePanel#1313
Conversation
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
| FieldPanel("submission_online_url"), | ||
| FieldPanel("main_collection"), | ||
| InlinePanel("journalsocialnetwork", label=_("Social Network")), | ||
| InlinePanel("social_networks", label=_("Social Network")), |
There was a problem hiding this comment.
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() |
There was a problem hiding this comment.
@copilot journalpage tem migração para serem criadas?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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_nameem modelos do appjournale atualiza usos emInlinePanel, queryset prefetch e formatter. - Atualiza o
journalpage(model + template) para usaraccepted_document_typese os novos related names. - Adiciona migration
0058comAlterFieldpara 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() |
There was a problem hiding this comment.
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).
| social_network = journal.social_networks.all() | |
| social_networks = journal.social_networks.all() |
| 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) |
There was a problem hiding this comment.
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.
O que esse PR faz?
Renomeia
related_namede seis relacionamentos ParentalKey do modelo Journal para eliminar ambiguidade e melhorar consistência com convenções Python.Mudanças:
journalsocialnetwork→social_networks(convenção snake_case, plural)annotation→notes(alinhado com label do InlinePanel)accepted_documment_types→accepted_document_types(correção de typo)file_oa→open_science_form_files(descritivo)ecommittee→ethics_committee(abreviação expandida)review→peer_review(desambiguação)Impacto técnico:
0058_rename_journal_inline_panel_related_names.pypara documentar as alterações no DjangoOnde a revisão poderia começar?
journal/models.pynas linhas dos ParentalKey alterados (1377, 1587, 1672, 1686, 1864, 2747), seguido porjournal/proxys.pypara validar consistência dos InlinePanel, e finalmentejournal/migrations/0058_rename_journal_inline_panel_related_names.pypara verificar a migration.Como este poderia ser testado manualmente?
make buildmake django_migrate/journal/{acron}/about/)Algum cenário de contexto que queira dar?
Os
related_nameoriginais 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 ohelp_textdo modelo e a label do InlinePanel onde aplicável. Emborarelated_nameseja 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
Original prompt
💡 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.