Skip to content

Conversation

@robertatakenaka
Copy link
Member

@robertatakenaka robertatakenaka commented Oct 8, 2025

O que esse PR faz?

Migra os módulos de Article, Issue e Journal de ModelAdmin (wagtail-modeladmin) para SnippetViewSet, seguindo as práticas modernas do Wagtail. Esta mudança é parte do esforço de modernização da plataforma, já que ModelAdmin está sendo descontinuado em favor do SnippetViewSet nativo do Wagtail.

As principais mudanças incluem:

  • Conversão de ArticleModelAdmin, IssueAdmin, JournalAdmin e suas classes relacionadas para SnippetViewSet
  • Adaptação dos grupos de admin (ModelAdminGroup) para SnippetViewSetGroup
  • Manutenção das funcionalidades existentes como filtros, busca e listagem
  • Adição de novos filtros onde aplicável (ex: journal em ArticleSnippetViewSet)

Onde a revisão poderia começar?

Sugiro iniciar pela migração mais simples para entender o padrão:

  1. journal/wagtail_hooks.py - migração básica de JournalAdmin para JournalViewSet
  2. issue/wagtail_hooks.py - migração com mais configurações (IssueSnippetViewSet e TOCSnippetViewSet)
  3. article/wagtail_hooks.py - migração mais complexa com views customizadas

Como este poderia ser testado manualmente?

  1. Acessar o admin do Wagtail (/admin/)
  2. Verificar que os menus de Articles, Issues e Journals continuam acessíveis
  3. Para cada módulo, testar:
    • Listagem de registros com paginação funcionando
    • Filtros laterais (status, journal, publication_year, etc.)
    • Busca por título, ISSN, PID, etc.
    • Criação de novo registro
    • Edição de registro existente
    • Visualização de detalhes (inspect view onde aplicável)
  4. Verificar que as permissões continuam funcionando corretamente
  5. Confirmar que a ordenação e agrupamento dos menus está mantida

Algum cenário de contexto que queira dar?

O wagtail-modeladmin está sendo descontinuado e a recomendação oficial é migrar para SnippetViewSet. Esta migração traz benefícios como:

  • Melhor integração com as features nativas do Wagtail
  • Interface mais moderna e consistente
  • Suporte nativo para exportação (CSV, XLSX)
  • Melhor performance em listagens grandes
  • Manutenibilidade a longo prazo

Nota importante: Algumas funcionalidades customizadas (ButtonHelper, PermissionHelper) precisarão de adaptação adicional em PRs subsequentes. Os comentários no código indicam onde essas adaptações serão necessárias.

Screenshots

[Adicionar screenshots mostrando:]

  • Nova interface de listagem dos Articles
  • Filtros funcionando na lateral
  • Formulário de criação/edição
  • Comparação visual antes/depois se disponível

Quais são tickets relevantes?

#743 - Migração de ModelAdmin para SnippetViewSet

Referências

- Substitui ModelAdmin por SnippetViewSet para modernizar interface
- Adapta ArticleModelAdmin, RelatedItemModelAdmin e RequestArticleChangeModelAdmin
- Converte ModelAdminGroup para SnippetViewSetGroup
- Comenta temporariamente helpers customizados que precisam adaptação
- Adiciona filtro por journal na listagem de artigos
- Converte IssueAdmin e TOCAdmin de ModelAdmin para SnippetViewSet
- Adiciona configurações de paginação, ordenação e exportação
- Implementa UpdatedAtColumn para melhor visualização de timestamps
- Configura list_export para CSV e XLSX
- Define ordenação padrão por ano de publicação e atualização
- Converte OfficialJournalAdmin e JournalAdmin para ViewSets
- Implementa panels customizados para formulários de edição
- Adapta método save_all através de get_form_class customizado
- Configura JournalViewSetGroup para organização no menu
- Mantém lógica de associação de usuário na criação/edição
- Converte todos ModelAdmin de migração para SnippetViewSet
- Remove MigrationFailureAdmin comentado
- Implementa ClassicWebsiteConfigurationViewSet com filtros melhorados
- Atualiza MigratedData, MigratedArticle, MigratedJournal e MigratedIssue
- Adiciona MigratedFileViewSet e IdFileRecordViewSet
- Cria MigrationViewSetGroup para organização hierárquica
- Converte JournalProc, IssueProc, HTMLXML para SnippetViewSet
- Atualiza SPSPkg e ArticleProc com novas configurações de listagem
- Implementa ProcReportViewSet para relatórios de processamento
- Mantém views customizadas ProcCreateView e ProcEditView
- Cria ProcessViewSetGroup organizando todos os snippets
- Remove configurações deprecated de ModelAdmin
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

This PR migrates Wagtail admin interfaces from the deprecated wagtail_modeladmin package to the modern SnippetViewSet and SnippetViewSetGroup classes. The main purpose is to add collection filters to processing modules while modernizing the admin interface approach.

  • Replaces ModelAdmin classes with SnippetViewSet classes across multiple modules
  • Adds collection filtering capability to processing admin interfaces
  • Updates import statements and registration methods throughout the codebase

Reviewed Changes

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

Show a summary per file
File Description
proc/wagtail_hooks.py Migrates processing admin from ModelAdmin to SnippetViewSet, adds collection filters
migration/wagtail_hooks.py Converts migration admin interfaces to SnippetViewSet, improves filtering options
journal/wagtail_hooks.py Updates journal admin with SnippetViewSet and enhanced form handling
issue/wagtail_hooks.py Modernizes issue admin interface with SnippetViewSet pattern
article/wagtail_hooks.py Partially migrates article admin to SnippetViewSet with commented adaptations

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

edit_view_class = ProcEditView
list_per_page = 10
list_display = (

Copy link

Copilot AI Oct 8, 2025

Choose a reason for hiding this comment

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

Remove unnecessary blank line to maintain consistent spacing.

Suggested change

Copilot uses AI. Check for mistakes.
MigratedIssueViewSet,
MigratedArticleViewSet,
MigratedFileViewSet,
IdFileRecordViewSet,
Copy link

Copilot AI Oct 8, 2025

Choose a reason for hiding this comment

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

Remove trailing whitespace after the comma.

Suggested change
IdFileRecordViewSet,
IdFileRecordViewSet,

Copilot uses AI. Check for mistakes.
@@ -1,86 +1,128 @@
# wagtail_hooks.py (ou views.py)
Copy link

Copilot AI Oct 8, 2025

Choose a reason for hiding this comment

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

Remove the comment indicating alternative file name - it's unclear and unnecessary in the actual file.

Suggested change
# wagtail_hooks.py (ou views.py)

Copilot uses AI. Check for mistakes.
Comment on lines +68 to +69
instance.created_by = self.request.user
instance.updated_by = self.request.user
Copy link

Copilot AI Oct 8, 2025

Choose a reason for hiding this comment

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

The form instance doesn't have access to self.request. Use the request parameter passed to the method instead of self.request.

Copilot uses AI. Check for mistakes.
button_helper_class = ArticleButtonHelper
permission_helper_class = ArticlePermissionHelper
inspect_view_enabled = True
menu_label = _("Articles")
Copy link

Copilot AI Oct 8, 2025

Choose a reason for hiding this comment

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

The menu label has changed from 'Tasks' to 'Articles'. Ensure this change is intentional and consistent with the application's navigation structure.

Copilot uses AI. Check for mistakes.
@robertatakenaka robertatakenaka merged commit 37753a2 into scieloorg:main Oct 8, 2025
3 checks passed
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.

1 participant