3.2 KiB
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), reutilizandolist_categoriascomo referência sem alterar seu comportamento atual. - 1.2 Adicionar parâmetro opcional
categoria_id=Noneemcreate_fiscale persistir o valor no INSERT defiscal_documents. - 1.3 Adicionar parâmetro opcional
categoria_idemupdate_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_fiscalou variante) para incluirLEFT JOIN categoria ON fiscal_documents.categoria_id = categoria.id, adicionandocategoria.categoria AS categoria_nomeao 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, lercategoria_iddo form (tratando string vazia comoNone) e repassar paracreate_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á incluemcategoria_nomeapó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á recebecategoria_nomevia 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
colspando 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/documentse na Dashboard. - 5.2 Rodar a suíte de testes existente (
tests/) e corrigir eventuais quebras relacionadas às funções alteradas emdatabase.py.