Tipo de página

Gantt: uma tabela de tarefas vira cronograma.

Este cronograma roda no app de exemplo, publicado no Teste Online. São 14 tarefas da implantação de um CRM, com fases, subtarefas, progresso e responsável, tudo lido de uma tabela comum.

A implantação do CRM em três meses

À esquerda ficam as fases, cada uma com as suas subtarefas. À direita, as barras com o progresso, a linha vermelha de hoje e um minimapa. O rodapé resume o projeto: 14 tarefas, progresso médio de 48%.

Gráfico de Gantt da implantação do Mini CRM, com fases, subtarefas, responsáveis e progresso
A implantação cabe em três meses, com fases que abrem e fecham, progresso em cada barra e a linha do dia atual.

Os campos da tarefa e as colunas da lista

Você aponta a tabela e os campos de nome, início, fim, tarefa pai e progresso. Depois escolhe as colunas da lista lateral. O resto já vem pronto.

resources/views/…blade.php
<mad-ganttmodel="ProjetoTarefa"name-field="nome" start-field="inicio" end-field="fim"parent-field="parent_id" progress-field="progresso"color-field="cor" owner-field="responsavel"order-by="ordem" interval="90"striped-rows show-minimap><mad-gantt-column field="name"     label="Tarefa"      width="300" tree /><mad-gantt-column field="owner"    label="Responsável" width="150" /><mad-gantt-column field="progress" label="%"           width="70" align="center" /></mad-gantt>

Cinco níveis de zoom, da hora ao ano

Você vê o projeto por hora, dia, semana, mês ou ano. Busca uma tarefa com ⌘K, volta para hoje com um botão e destaca o caminho crítico com um clique.

O mesmo cronograma de Gantt no zoom por semana, com o nome e o percentual dentro de cada barra
O mesmo cronograma no zoom por semana, com a régua de tempo marcando da S28 à S35.

Quando usar o Gantt

O Gantt serve quando o trabalho tem começo, fim e ordem, e o atraso de uma tarefa empurra as outras. Ele mostra o prazo do projeto inteiro e onde ele pode escorregar.

  • Implantação de sistema. Como neste exemplo, fases com subtarefas, responsável e progresso.
  • Obras e reformas. Etapas que dependem umas das outras, com os dias úteis e os feriados marcados no cronograma.
  • Lançamento de produto. O caminho crítico mostra quais atrasos mudam a data final.
  • Produção sob encomenda. O painel de carga mostra quem está com horas demais no dia.

Se as tarefas não dependem umas das outras e só importa a etapa de cada uma, o kanban é mais simples. Para compromissos com dia e hora, use o calendário. O Gantt é montado no editor visual, com dependências, caminho crítico e linha de base.

O que você configura

Além dos campos da tarefa, o cronograma tem atributos para o planejamento e para o calendário de trabalho.

Dependências <mad-gantt-dependencies>
A tabela que liga as tarefas, com os quatro tipos de ligação (término-início, início-início, término-término e início-término) e um intervalo entre elas.
Reprogramação auto-schedule
Quando você move uma tarefa, as que dependem dela andam junto.
Caminho crítico critical-path
Destaca em vermelho as tarefas sem folga, as que atrasam o projeto se atrasarem.
Linha de base <mad-gantt-baseline>
Informa o início e o fim planejados de cada tarefa, para comparar o planejado com o realizado.
Dias úteis working-days
Os dias que contam como trabalho, de segunda a sexta por padrão. Cada feriado entra como uma data (<mad-gantt-holiday>).
Zoom e janela zoom
O zoom com que o cronograma abre, dia por padrão. O interval define quantos dias aparecem de início, 90 neste exemplo.

O que vai para o projeto Laravel

O Gantt vem em par, o cronograma e o cadastro de tarefas, cada um com a sua classe em app/Control e a sua view Blade. O cronograma fala com o seu PHP assim:

  • Cada gesto chama um método seu. O cronograma avisa a tela quando alguém clica numa tarefa (on-task-click), move ou estica uma barra (on-task-update) ou cria uma dependência (on-dependency-create).
  • Botões no cabeçalho. O <mad-gantt-header-action> põe um botão no topo do cronograma que chama um método PHP, como onAddTask, ou abre outra tela.
  • A árvore vem de um campo. Fases e subtarefas saem do campo de tarefa pai (parent-field), e a coluna marcada com tree abre e fecha cada fase na lista lateral.

Como toda tela do MadBuilder, esses arquivos abrem no seu editor, vão para o seu Git e aceitam código à mão em blocos protegidos, que continuam lá quando a tela é gerada de novo. Veja como o código é gerado.

Perguntas sobre o Gantt

O Gantt funciona com a minha tabela de tarefas?

Funciona com uma tabela comum. Você aponta os campos de nome, início e fim e, como neste exemplo, os de tarefa pai, progresso, cor e responsável. As dependências ficam numa tabela à parte.

Dá pra editar a tarefa sem sair do Gantt?

Dá. Um duplo clique numa célula da lista lateral edita ali mesmo. E o clique na tarefa pode abrir o formulário de tarefas, que vem junto com este tipo de página.

O Gantt mostra quem está sobrecarregado?

Mostra, se você ligar o painel de carga. A partir de uma tabela de alocações, com tarefa, pessoa e horas, ele desenha abaixo do cronograma as horas de cada responsável por dia e destaca a sobrecarga.

E mais

Setas ligando as tarefas que dependem umas das outrasMover uma tarefa empurra as que dependem delaCaminho crítico em destaqueComparação entre o planejado e o realizadoPainel com a carga de trabalho de cada recursoDuplo clique na lista lateral para editar ali mesmoSeu código PHP roda quando alguém move, estica ou liga tarefas

Veja também a Timeline ou os tipos de página.

Crie a conta, monte uma tela, baixe o projeto.

Sem demo agendada e sem call de descoberta. Se o Laravel que sair não passar na revisão do seu time, você perdeu uma tarde.

  1. Crie a contaBeta aberto, sem cartão.
  2. Monte uma telaNo visual, no código ou pedindo à IA.
  3. Baixe o .zipUm projeto Laravel que roda onde você quiser.