Skip to content

feat: dólar canadense e horário configurável do backup#41

Merged
iscarelli merged 1 commit into
mainfrom
feat/cad-currency-backup-schedule
Jun 10, 2026
Merged

feat: dólar canadense e horário configurável do backup#41
iscarelli merged 1 commit into
mainfrom
feat/cad-currency-backup-schedule

Conversation

@iscarelli

Copy link
Copy Markdown
Owner

Resumo

Dois itens independentes agrupados num PR:

1. Dólar canadense (CAD)

  • Nova moeda em _CURRENCY_META (app.py): símbolo C$, formato 1,234.56.
  • Opção no select de Configurações.
  • Como formatação/parsing são orientados pelo registro de moedas, _format_price/_parse_price já tratam o CAD pelo ramo de decimal . — sem mudanças extras.

2. Horário do backup automático configurável

  • Setting backup_hour (0–23, hora local; default 03:00), editável em /admin/backup.
  • O spool-backup.timer passa a acordar de hora em hora (OnCalendar=*-*-* *:00:00); o backup.py decide se é a hora certa via due_now() e roda no máx. 1×/dia, com catch-up (máquina ligada após a hora ainda dispara) e retry horário em caso de falha.
  • Mantém o horário no app (não no systemd) — trocar a hora não exige root nem daemon-reload.
  • run_scheduled_backup(force=True) ignora o gate (backup manual).
  • Deploy re-arma o timer (systemctl restart spool-backup.timer) após o daemon-reload, garantindo o re-cálculo do próximo disparo. Nenhuma ação manual ao atualizar; instalações existentes seguem em 03:00.

i18n

Strings novas com tradução EN/ES (paridade de chaves conferida).

Testes

tests/test_backup.py: testes de geração passam a usar force=True; +6 novos cobrindo clamp da hora, idempotência diária, skip antes da hora, force, e a rota de config (salvar/rejeitar hora). Suíte completa: 111 passando.

🤖 Generated with Claude Code

Adiciona CAD (C$, formato 1,234.56) às moedas — orientado pelo
registro _CURRENCY_META, sem mudanças em format/parse.

Torna o horário do backup automático configurável em /admin/backup
(setting backup_hour, 0..23 local, default 03:00). O timer passa a
acordar de hora em hora e o backup.py decide a hora certa, rodando no
máx. 1x/dia com catch-up e retry — mantém o horário no app, sem exigir
root/daemon-reload. Deploy re-arma o timer após daemon-reload.

i18n EN/ES e testes (gate de agendamento + rota de config).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@iscarelli iscarelli merged commit a26f69d into main Jun 10, 2026
4 checks passed
@iscarelli iscarelli deleted the feat/cad-currency-backup-schedule branch June 10, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant