Files

3.2 KiB

1. Camada de dados (app/database.py)

  • 1.1 Adicionar função (ou parâmetro) para listar categorias ordenadas por nome ASC (ORDER BY categoria ASC), reutilizando list_categorias como referência sem alterar seu comportamento atual.
  • 1.2 Adicionar parâmetro opcional categoria_id=None em create_fiscal e persistir o valor no INSERT de fiscal_documents.
  • 1.3 Adicionar parâmetro opcional categoria_id em update_fiscal (se existir fluxo de edição), persistindo no UPDATE.
  • 1.4 Levantar todos os call sites de list_fiscal (ou função equivalente usada por Dashboard e /documents) e confirmar o shape de retorno atual antes de alterar.
  • 1.5 Alterar a consulta usada pela listagem (list_fiscal ou variante) para incluir LEFT JOIN categoria ON fiscal_documents.categoria_id = categoria.id, adicionando categoria.categoria AS categoria_nome ao final do SELECT sem remover/reordenar colunas existentes.

2. Formulário de novo documento (/documents/new)

  • 2.1 Em app/routes/documents_routes.py, na rota GET de /documents/new, buscar a lista de categorias ordenadas por nome (via 1.1) e passar ao template.
  • 2.2 Em app/templates/document_form.html, adicionar <select name="categoria_id"> com opção vazia "Sem categoria" seguida das opções carregadas, próximo aos demais campos do formulário.
  • 2.3 Na rota POST create_document, ler categoria_id do form (tratando string vazia como None) e repassar para create_fiscal.
  • 2.4 Testar manualmente: criar documento sem categoria e criar documento com categoria selecionada; confirmar persistência via consulta ao banco.

3. Coluna Categoria na Dashboard

  • 3.1 Em app/routes/dashboard_routes.py, confirmar que os dados de "Últimos documentos" já incluem categoria_nome após a alteração da query (item 1.5); ajustar se necessário.
  • 3.2 Em app/templates/dashboard.html, adicionar <th>Categoria</th> logo após <th>Fornecedor</th> no cabeçalho da tabela "Últimos documentos".
  • 3.3 Adicionar a célula correspondente ({{ item.categoria_nome or '' }} ou equivalente) na mesma posição nas linhas da tabela.
  • 3.4 Validar visualmente que a coluna aparece corretamente para documentos com e sem categoria, e que o restante do layout não quebra.

4. Coluna Categoria na listagem /documents

  • 4.1 Confirmar que a rota /documents (list_documents) já recebe categoria_nome via a query alterada (item 1.5).
  • 4.2 Em app/templates/documents_list.html, adicionar <th>Categoria</th> logo após <th>Fornecedor</th> no cabeçalho.
  • 4.3 Adicionar a célula correspondente na mesma posição nas linhas da tabela.
  • 4.4 Ajustar o colspan do footer/linha de total, se existir, para refletir a coluna adicional.
  • 4.5 Validar visualmente a listagem completa, incluindo documentos com e sem categoria.

5. Verificação final

  • 5.1 Rodar a aplicação localmente e testar o fluxo completo: cadastrar documento com categoria em /documents/new, confirmar exibição correta em /documents e na Dashboard.
  • 5.2 Rodar a suíte de testes existente (tests/) e corrigir eventuais quebras relacionadas às funções alteradas em database.py.