Prazos e vencimentos🔗

Problema. Saber, sem procurar, o que vence esta semana e o que já passou do prazo.

Solução. Atributo prazo em ISO, fórmula de dias restantes e estilos condicionais.

Antes de começar

O que você vai aprender

  • Registrar prazos num formato que ordena e parseia sem ambiguidade
  • Calcular dias restantes por fórmula
  • Fazer o mapa se colorir sozinho conforme o prazo se aproxima

Passos🔗

  1. Registre a chave prazo em Gerenciar atributos do mapa e restrinja o formato mentalmente a AAAA-MM-DD. Esse formato ordena corretamente como texto e é parseável sem ambiguidade.

  2. Preencha prazo nas tarefas que têm data.

  3. Crie o atributo dias com a fórmula:

    =if (!node['prazo']) return ''
     def p = Date.parse('yyyy-MM-dd', node['prazo'])
     def d = (p - new Date()) as int
     d < 0 ? "atrasado ${-d}d" : (d == 0 ? 'hoje' : "faltam ${d}d")
  4. Crie um atributo auxiliar situacao, mais fácil de usar em condições:

    =if (!node['prazo']) return 'sem prazo'
     def d = ((Date.parse('yyyy-MM-dd', node['prazo']) - new Date()) as int)
     d < 0 ? 'atrasado' : (d <= 7 ? 'esta semana' : 'futuro')

Estilos condicionais🔗

Em Formatar → Gerenciar estilos → Estilos condicionais do mapa:

CondiçãoEstilo
situacao = atrasadoAtrasado (fundo vermelho claro)
situacao = esta semanaUrgente (fundo amarelo)
Nó tem button_okConcluído (texto cinza, riscado)

A ordem importa: ponha Concluído acima dos outros dois, para que uma tarefa feita não apareça como atrasada.

Filtros salvos🔗

NomeCondição
Atrasadossituacao é igual a atrasado E não tem button_ok
Esta semanasituacao é igual a esta semana E não tem button_ok
Sem prazoprazo não existe

Salve os três; eles ficam no .mm e reaparecem na barra de filtro.

Limitação a conhecer🔗

Fórmulas que dependem de new Date() não são recalculadas sozinhas ao virar o dia. Ao abrir o mapa pela manhã, os valores podem estar defasados.

Solução: Ferramentas → Atualizar fórmulas ao começar o dia. Ou um script no menu que faça isso com um atalho.

Por que não usar lembretes🔗

O lembrete do Freeplane só dispara com o mapa aberto. Não há serviço de fundo nem integração com calendário.

O atributo prazo não avisa, mas responde à pergunta quando você faz — e continua consultável com grep mesmo com o mapa fechado:

grep -o 'NAME="prazo" VALUE="[^"]*"' mapa.mm | sort

Para compromissos que realmente importam, o calendário do sistema é a ferramenta; o mapa é onde o trabalho vive.

Erros comuns

  • Escrever a data em DD/MM/AAAA: não ordena como texto e o parse falha
  • Confiar na cor sem abrir o mapa — o cálculo só roda quando o mapa é aberto
  • Criar estilos condicionais sobrepostos sem cuidar da ordem das regras
  • Encher o mapa de prazos que ninguém revisa, treinando você a ignorar o vermelho

Você aprendeu

  • AAAA-MM-DD ordena corretamente como texto e parseia sem ambiguidade
  • A fórmula transforma a data em uma frase legível de dias restantes
  • O estilo condicional transforma o cálculo em cor, sem intervenção
  • A revisão periódica é o que mantém o sistema honesto

Perguntas para reflexão

  1. Por que o formato ISO é obrigatório nesta receita?
  2. Quando a fórmula de dias restantes é reavaliada?
  3. Como o estilo condicional entra no fluxo, e o que ele consulta?
  4. Que risco existe em ter muitos prazos vencidos visíveis o tempo todo?

Artigos relacionados

Referências🔗

  1. Freeplane — Data recognition and data formats
  2. Freeplane — Conditional node styles
  3. Freeplane — Formulas