Skip to content

feat: definição de estrutura por ano#1104

Open
igorgoncalves wants to merge 4 commits intomainfrom
feat/struct-by-year
Open

feat: definição de estrutura por ano#1104
igorgoncalves wants to merge 4 commits intomainfrom
feat/struct-by-year

Conversation

@igorgoncalves
Copy link
Copy Markdown
Member

@igorgoncalves igorgoncalves commented Feb 20, 2026

Motivação

Antes, as estruturas de avaliação (grade de notas) não tinham vínculo com o ano letivo, o que tornava difícil reaproveitar ou distinguir estruturas de anos diferentes. Este PR adiciona o campo de ano de referência às estruturas e permite copiar uma estrutura existente para outro ano sem precisar recadastrá-la do zero.

Alterações Realizadas

  • Adicionada coluna school_year à tabela grade_rules para vincular cada estrutura a um ano letivo
  • Criada tela dedicada de gerenciamento de estruturas de avaliação (extraída do controller de administração)
  • Implementada funcionalidade de copiar estrutura para outro ano, com modal de seleção do ano de destino
  • A cópia preserva todas as unidades, recuperações parciais e pesos, respeitando as dependências entre os registros
  • Listagem atualizada para exibir o ano de referência e as etapas de ensino vinculadas
  • Estruturas antigas (sem ano definido) continuam visíveis automaticamente para anos anteriores a 2026
  • Modal de cópia e botões de ação atualizados com as classes do design system do projeto
  • Versão atualizada para 3.10.0 no config.php e CHANGELOG.md

Requisitos

  • Executar a migration app/migrations/3.10.0/add_school_year_to_grade_rules.sql

Fluxo de Teste

Fluxo de Teste 1 (FT1) Copiar estrutura para outro ano:

1. Acesse Administrador > Estruturas de Avaliação
2. Verifique que a listagem exibe o ano de referência e etapas de cada estrutura
3. Clique no ícone de cópia de uma estrutura existente
4. No modal, selecione o ano de destino e clique em Copiar
5. Verifique que a nova estrutura aparece com o ano correto e os mesmos dados da original

Sucesso: Nova estrutura criada com o ano selecionado e todos os dados da original
Falha: Erro ao salvar, dados faltando ou ano incorreto

Fluxo de Teste 2 (FT2) Filtro por ano na listagem:

1. Acesse com usuário cujo ano de sessão seja anterior a 2026 (ex: 2025)
2. Verifique que estruturas sem ano definido aparecem junto com as do ano 2025
3. Troque o ano de sessão para 2026 ou posterior
4. Verifique que apenas estruturas com school_year = 2026 aparecem

Sucesso: Filtro funciona conforme a regra de negócio
Falha: Estruturas do ano errado aparecem ou somem indevidamente

Migrations Utilizadas

  • app/migrations/3.10.0/add_school_year_to_grade_rules.sql

Checklist - Padrões para PR

  • O número da versão foi alterado no arquivo config.php?
  • Foi adicionada uma descrição das alterações no arquivo de CHANGELOG?
  • O pull request passou na avaliação do SonarLint?
  • O pull request está nomeado corretamente seguindo o padrão de nomes de branchs?

Documentação

Houve alteração nos fluxo de uso?
(Lembrete: Em caso afirmativo, adicionar label Atualização de manual)

  • Sim
  • Não

Comment thread js/admin/grades-structure.js Fixed
@sonarqubecloud
Copy link
Copy Markdown

@GabrielChagas14 GabrielChagas14 self-requested a review February 25, 2026 14:01
Copy link
Copy Markdown
Collaborator

@GabrielChagas14 GabrielChagas14 left a comment

Choose a reason for hiding this comment

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

LGTM

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.

3 participants