Pular para conteúdo

ADR 0010 — Interface moderna, temas e idioma

Status: Aceita · Data: 09/11/2026

Contexto

O admin padrão do Django tem visual datado e não oferece escolha de tema. Além disso, pacotes de terceiros sem tradução (rotinas agendadas do django-celery-beat, partes do visual do admin) mostravam textos em inglês.

Decisão

  • Admin com Unfold: visual moderno, menu lateral próprio do sistema, pesquisa rápida (Ctrl+K), cor primária índigo.
  • Tema: Claro, Escuro ou Sistema, escolhido no menu da conta (canto inferior esquerdo). O padrão é Sistema, que segue o modo do aparelho. A escolha fica salva no navegador.
  • A documentação (/docs) segue a mesma regra: começa em Sistema e alterna Claro → Escuro → Sistema.
  • Todo texto visível em português (pt-BR). O que os pacotes não traduzem fica num catálogo próprio:
  • fonte: backend/locale/gerar_traducoes.py (dicionários de tradução);
  • gerado: backend/locale/pt_BR/LC_MESSAGES/django.po (vai para o Git);
  • compilado (.mo) no build da imagem e no CI.
  • Colunas sem rótulo traduzível nos pacotes (ex.: "Scheduler" das rotinas) recebem coluna própria com nome em português.
  • Requisito para as telas da F2 em diante: tema Claro, Escuro e Sistema, com Sistema como padrão, e todos os textos em português.

Alternativas consideradas

  • Manter o admin padrão: sem custo, mas visual datado e sem seletor de três opções.
  • Jazzmin / Grappelli: outros temas de admin; o Unfold é o mais ativo e já traz o seletor Claro/Escuro/Sistema.
  • Esperar o frontend da F2: o admin continua sendo a tela de manutenção, então vale estar no padrão desde já.

Consequências

  • Atualizar o Unfold ou o django-celery-beat pode trazer textos novos em inglês. Para conferir, rode a extração descrita em Regras do projeto e acrescente as traduções que faltarem em gerar_traducoes.py.
  • O menu lateral abre sozinho em telas com mais de 1280 px de largura; em telas menores fica recolhido no botão de menu.