?? Tela: Importar Turmas via Excel

Rota: /Turmas/Import

Tipo: Formulário de upload

Permissão necessária: Administrador

?? Visão Geral da Tela

Tela para importação em lote de turmas através de arquivo Excel (.xlsx ou .xls) seguindo um template padronizado.

?? Elementos da Interface

1. Cabeçalho

  • Título: "Importar Turmas via Excel"
  • Botão Voltar: Retorna para listagem de turmas

2. Alertas de Feedback

Alerts condicionais baseados no TempData:

  • Success: Alert verde com ícone de check
  • Error: Alert vermelho com ícone de erro
  • Warnings: Alert amarelo com lista de avisos

3. Instruções de Uso

Card azul informativo com lista numerada:

  1. Baixe o template Excel
  2. Preencha o arquivo com os dados das turmas
  3. Mantenha os cabeçalhos da primeira linha
  4. Campos obrigatórios estão marcados com *
  5. Faça o upload do arquivo preenchido

4. Botão de Download

  • Texto: "Baixar Template Excel"
  • Estilo: Botão grande verde com ícone de download
  • Ação: Chama /Turmas/DownloadTemplate

5. Formulário de Upload

  • Campo File:
    • Label: "Arquivo Excel *"
    • Accept: .xlsx, .xls
    • Required
    • Texto auxiliar: "Formatos aceitos: .xlsx, .xls"
  • Botões de Ação:
    • Importar Turmas (primário azul, grande)
    • Cancelar (secundário, grande)

6. Tabela de Estrutura do Arquivo

Tabela explicativa com 4 colunas:

Coluna Excel Campo Obrigatório Formato/Exemplo
A Nome da Turma ? Sim Direito 2025.1
B Curso ? Não Direito
C Ano Formatura ? Não 2025
D Instituição ? Não UFMG
E Período ? Não Matutino, Vespertino, Noturno, Integral
F Data Colação ? Não 15/06/2025
G Data Formatura ? Não 20/07/2025
H Local Formatura ? Não Palácio das Artes

7. Observações Importantes

Card amarelo com alertas:

  • O Nome da Turma deve ser único no sistema
  • Datas devem estar no formato DD/MM/AAAA
  • Todas as turmas importadas serão criadas como Ativas
  • Se houver erros em alguma linha, as demais linhas válidas serão importadas

? Funcionalidades Interativas

Estados do Botão Importar

  • Normal: "Importar Turmas" com ícone de upload
  • Processando: Desabilitado + spinner + "Importando..."

Validação de Arquivo

  • Validação HTML5: apenas .xlsx e .xls aceitos
  • Campo obrigatório (required)

?? Notificações e Feedback

Sucesso

Alert verde dismissível: "X turmas importadas com sucesso!"

Erro

Alert vermelho dismissível com descrição do erro

Warnings

Alert amarelo com lista de avisos:

  • Linhas ignoradas (motivo)
  • Campos inválidos
  • Duplicatas encontradas

?? Regras de Negócio

  • Nome da turma deve ser único dentro do tenant
  • Linhas sem nome são ignoradas
  • Datas inválidas resultam em campo null
  • Turmas são criadas com status "ativa" por padrão
  • Importação é parcial: linhas válidas são criadas mesmo com erros em outras
  • Template deve ser gerado pela própria aplicação

?? Integração com API

Download Template: GET /Turmas/DownloadTemplate

Upload: POST /Turmas/Import

  • Content-Type: multipart/form-data
  • Antiforgery token obrigatório

?? Navegação

  • Ao importar com sucesso: Permanece na tela com mensagem de sucesso
  • Ao clicar em Cancelar: Redireciona para /Turmas/Index
  • Ao clicar em Voltar: Redireciona para /Turmas/Index

?? Responsividade

Layout responsivo em 1 coluna, adaptável a todos os tamanhos de tela.