portal_publico/docs/calendario-individual/CHANGELOG.md

27 lines
3.7 KiB
Markdown

# Changelog — Calendário Individual e Widgets
> Histórico específico desta aplicação, extraído de `plano.md`. Rodadas que mudaram mais de uma aplicação ao mesmo tempo (modelo de permissões, CSS transversal) continuam em `plano.md`.
>
> **Formato**: uma entrada por rodada, `### Rodada N — Título`; quando a rodada não tem número registrado, `### Título` só. **A numeração de rodada não é global** — cada aplicação conta as próprias, e o mesmo número designa trabalhos diferentes em arquivos diferentes. Ao citar uma rodada, sempre nomear o arquivo. Ver o topo de `plano.md`.
### Rodada 9 — Calendário De Paula → link externo
"O Calendário De Paula deve ser um redirecionador" para `https://depaula-tvcorporativa.lovable.app/calendario` (abre em nova aba). O calendário interno mockado (`calendario.html` + `calendar.js`, com eventos fixos por setor) foi removido a pedido do usuário depois da troca — não recriar sem confirmar.
### Rodada 10 — Calendário Individual + Widgets
Pedido novo, em duas partes:
- **Calendário Individual** (`calendario-individual.html`): agenda pessoal de cada colaborador (seção base, disponível a todo perfil). Cada um cria compromissos e pode marcá-los como visíveis para todos que compartilham pelo menos um perfil de acesso em comum (`sharedWithProfile` + `pidEventsVisibleTo` em `events.js`) — colegas só visualizam, não editam nem excluem compromisso alheio.
- **Widgets** na tela Principal: área "Widgets" com botão "Adicionar Widget" (seletor, no estilo Asana) — pensada para crescer além de um único tipo. Hoje só existe o widget de Calendário Individual (próximos 5 compromissos), mas o registro `PID_WIDGET_TYPES` já está estruturado para novos tipos sem refazer a área de adicionar/remover.
### Rodada 11 — Horário e edição no Calendário Individual
Compromissos ganharam campo de horário (ordenados por horário dentro do dia) e passaram a ser editáveis depois de criados — clicar num compromisso próprio abre o mesmo modal preenchido, com um botão "Excluir" adicional, em vez de excluir direto ao clicar.
### Rodada 35 — Eventos Corporativos no Calendário Individual
Pedido: distinguir compromissos pessoais/departamentais de **eventos corporativos** formais (reuniões, treinamentos) — com categoria, local, modalidade (presencial/remoto/híbrido) e descrição — e restringir quem pode criar compromissos visíveis para o departamento ou para todos, que até então qualquer usuário podia fazer livremente.
O que foi construído: `CategoriaEvento` (nome único + cor hex, cadastro editável direto no modal de criar/editar compromisso, botão "+" ao lado do `<select>` de categoria); `CompromissoAgenda` ganhou `categoria` (FK), `eh_evento` (booleano — força `visibilidade="todos"` na validação), `local`, `modalidade` e `descricao`. Nova permissão `calendario-individual-criar-evento` (`catalogo.py`, único `tool` dentro de um subgrupo — não um par visualizar/editar, já que o módulo em si é liberado a todo perfil) passou a ser exigida por `CompromissoAgendaSerializer.validate()` para qualquer compromisso com `visibilidade` em `departamento`/`todos` — liberada só pra "Integração e Inovação" no `seed_portal.py` por ora, mesmo cuidado de sempre (`calendario-individual` está em `BASE_KEYS`). No calendário, eventos ganharam uma 5ª categoria de filtro/cor (`"evento"`, token `--coral`), distinta das 4 já existentes (`somente_eu`/`departamento`/`todos`/`equipe`). Migrações `0018_remove_compromissoagenda_compartilhado_com_perfil_and_more`, `0019_categoriaevento_compromissoagenda_descricao_and_more` e `0020_compromissoagenda_eh_evento`. Detalhe técnico completo em `docs/calendario-individual/calendario-individual.md`, seção "Eventos Corporativos".