Skip to content

Comments

Ajustes wagtail hooks menu collection#865

Open
robertatakenaka wants to merge 7 commits intoscieloorg:mainfrom
robertatakenaka:ajustes_wagtail_hooks_menu_collection
Open

Ajustes wagtail hooks menu collection#865
robertatakenaka wants to merge 7 commits intoscieloorg:mainfrom
robertatakenaka:ajustes_wagtail_hooks_menu_collection

Conversation

@robertatakenaka
Copy link
Member

O que esse PR faz?

Este PR realiza uma refatoração estrutural nos ViewSets e Forms do projeto, focando na padronização do ecossistema Wagtail. As principais mudanças incluem:

  • Centralização de Lógica: Migração do ClassicWebsiteConfigurationViewSet para o local correto e remoção de redundâncias de filtragem de permissões nos apps issue e collection.
  • Padronização do App team: Eliminação de formulários (forms.py) e views (views.py) customizados em favor do uso de classes genéricas do core (CoreAdminModelForm e CommonControlFieldCreateView).
  • Correção de Navegação: Atualização de links de templates para o padrão de rotas de snippets do Wagtail.
  • Limpeza de Esquema: Remoção do campo bucket_app_subdir no app de storage por obsolescência.

Onde a revisão poderia começar?

A revisão deve começar por team/models.py e team/wagtail_hooks.py, onde a maior parte da lógica customizada foi substituída pela herança das classes do core. Em seguida, verifique issue/wagtail_hooks.py para validar a simplificação da lógica de filtragem.

Como este poderia ser testado manualmente?

  1. Acesse o painel administrativo do Wagtail.
  2. Navegue até o menu de Collections e verifique se o link no resumo (Summary Item) do dashboard está funcionando corretamente.
  3. No app Team, tente criar um novo CollectionTeamMember ou uma Company. Verifique se o formulário carrega corretamente e se os campos de controle (criador/editor) são preenchidos automaticamente ao salvar.
  4. Verifique se a listagem de Issues e TOCs continua respeitando as permissões de usuário (filtragem por jornal).
  5. Confirme se a seção de Migration no menu ainda exibe os itens esperados, agora com a estrutura organizada.

Algum cenário de contexto que queira dar?

O projeto vinha acumulando diversas implementações manuais de formulários que apenas replicavam a lógica de salvar o request.user nos campos creator e updated_by. Ao adotar o CoreAdminModelForm, reduzimos o volume de código em aproximadamente 50 linhas e centralizamos a manutenção dessas regras de auditoria no app core.

Screenshots

N/A (As mudanças são estruturais e de backend, não alterando o layout visual, exceto pela correção de links quebrados).

Quais são tickets relevantes?

  • Relacionado à Issue # (insira o número aqui) - Refatoração de permissões e limpeza de hooks.

Referências

  • Documentação do Wagtail SnippetViewSet.
  • Padrões internos de auditoria definidos no core.models.CommonControlField.

Copilot AI review requested due to automatic review settings February 22, 2026 15:03
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 performs a structural refactoring of ViewSets and Forms to standardize the Wagtail ecosystem. The main goal is to centralize common logic for handling creator/updater tracking in models that inherit from CommonControlField by using CoreAdminModelForm and CommonControlFieldCreateView instead of custom form and view implementations.

Changes:

  • Standardized team app to use generic core classes (CoreAdminModelForm and CommonControlFieldCreateView) instead of custom forms and views
  • Moved ClassicWebsiteConfigurationViewSet import from collection to migration app
  • Simplified permission filtering logic in issue app by removing redundant collection-based filtering
  • Removed obsolete bucket_app_subdir field references from files_storage admin configuration
  • Updated template URL to use Wagtail snippet route pattern
  • Removed empty URL registration hook from collection app

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
team/wagtail_hooks.py Added CoreAdminModelForm and CommonControlFieldCreateView to all ViewSets for standardized form handling
team/views.py Removed custom CollectionTeamMemberCreateView in favor of generic core view
team/models.py Removed custom form import, added base_form_class to models using CoreAdminModelForm
team/forms.py Removed entire file containing custom CollectionTeamMemberModelForm
migration/wagtail_hooks.py Removed ClassicWebsiteConfigurationViewSet from MigrationViewSetGroup items (moved to Collection menu)
collection/wagtail_hooks.py Changed to import ClassicWebsiteConfigurationViewSet from migration app, removed redundant ViewSet definition and empty URL hook
issue/wagtail_hooks.py Simplified permission filtering by removing redundant collection-based checks (journal_list_ids already includes journals from collections)
files_storage/wagtail_hooks.py Removed references to obsolete bucket_app_subdir field from list_display and search_fields
core/templates/wagtailadmin/summary_items/collection_summary_item.html Updated URL from modeladmin pattern to Wagtail snippet pattern

from config.menu import get_menu_order
from files_storage.wagtail_hooks import MinioConfigurationViewSet
from migration.models import ClassicWebsiteConfiguration
from migration.wagtail_hooks import ClassicWebsiteConfigurationViewSet
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

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

The ClassicWebsiteConfigurationViewSet is now imported from migration.wagtail_hooks, but the version in that file is missing the permission filtering logic that was present in the removed code here (lines 77-106 of the old version). The removed get_queryset method filtered records based on user collection membership using get_user_membership_ids. Without this filtering, non-superuser users will be able to see all ClassicWebsiteConfiguration records instead of only those associated with their collections. This is a security concern as it could expose configuration data that users should not have access to.

The ClassicWebsiteConfigurationViewSet in migration/wagtail_hooks.py needs to have the same get_queryset permission filtering logic added.

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.

1 participant