Skip to content

v0.73.0

Choose a tag to compare

@adrianfiio adrianfiio released this 02 Aug 02:05

AFService Map v0.73.0 — Reskin visual dos dashboards

Backup/ponto de rollback desta rodada: tag v0.72.1. Trabalho feito
diretamente por mim (Claude), a partir de 3 HTMLs de referência que o
Gemini gerou (Tailwind + FontAwesome via CDN) pro SuperAdmin, Provedor/ISP
e Projetista — usados só como inspiração visual, não copiados como
código. Sem migration, sem mudança em Python.

O que pediu, o que entreguei

O usuário confirmou que queria a linguagem visual dos 3 mockups (fundo
bem escuro, cards com glow, badge de ícone colorido, sidebar retrátil em
trilho de ícones, cabeçalho tipo hero) aplicada nos dashboards reais do
sistema — não os HTMLs em si. O sistema de widgets por trás dessas 3
páginas (grid arrastável/redimensionável via Gridstack só no modo de
edição, dados reais vindo das views) já estava completo e não precisou
mudar; este pacote é puramente visual.

O que decidi não trazer, e por quê

  • Tailwind CSS e FontAwesome via CDN: o próprio Tailwind desaconselha
    o build via CDN em produção (sem purge, carrega o framework inteiro, e
    cria uma dependência de rede externa toda vez que alguém abre o
    dashboard). O projeto inteiro é CSS/JS vanilla sem bundler, ícone
    inline em SVG — mantive esse padrão, só ampliei static/css/app.css.
  • Widgets de faturamento, inadimplência e bloqueio automático que
    apareciam nos mockups: não existe módulo financeiro no sistema hoje.
    Mostrar isso seria inventar número falso na tela — não fiz.
  • Busca funcional na topbar: uma busca decorativa sem back-end real
    seria enganosa. A busca de verdade já existe em "Minha administração" e
    no mapa; não dupliquei.

O que mudou

Menu lateral (templates/base.html, static/css/app.css)

Ao recolher, a sidebar não some mais por completo — vira uma faixa de
72px só com os ícones da navegação (mesmo padrão já usado no mapa desde a
v0.72.1: .app-sidebar.desktop-collapsed agora tem width: 72px em vez
de transform: translateX(-100%)). O texto de cada link foi movido pra
um <span class="nav-label"> novo (antes era texto solto ao lado do
ícone), pra poder esconder só o rótulo no modo recolhido.

Cabeçalho "hero" dos dashboards

Classe nova .page-heading.dashboard-hero, usada só nas 3 páginas de
dashboard (dashboard.html, dashboard_designer.html,
platform_overview.html) — fundo em gradiente com dois halos desfocados
(::before/::after com blur), borda sutil, padding maior. O
.page-heading genérico usado nas outras páginas do sistema (lista de
equipamentos, conta, etc.) não foi tocado.

Acento roxo só na Visão da plataforma

body.platform-role (aplicado só quando a rota é platform-overview,
exclusiva de superusuário) sobrescreve --primary pra roxo fixo — o
dashboard de provedor e de projetista continuam seguindo a cor de
whitelabel de cada empresa (current_company.brand_color), como sempre.
A regra vence o :root{--primary:...} do whitelabel por especificidade
CSS (body.platform-role tem mais peso que :root sozinho), então não
depende de ordem de carregamento.

Selo de percentual no card "Acessos online"

dashboard.html recalcula o mesmo % online que já existia dentro do
painel "Estado dos acessos" ({% widthratio %}) e mostra como pílula
colorida (.metric-badge) ao lado do número — reaproveita dado que já
era calculado, não adiciona cálculo novo no back-end.

Feed de alertas com borda lateral por severidade

.alert-item (painel "Alertas recentes") e as linhas de "Precisa de
atenção" (Visão da plataforma) ganham border-left colorido — vermelho
pra crítico/alto, amarelo pra médio/atenção, azul pra informativo — em
cima do markup que já existia, sem mudar dado nenhum.

Avatar + breadcrumb na topbar

.topbar-user ganha um círculo com a inicial do nome (via filtro Django
padrão |slice:":1"|upper, sem template tag nova) ao lado do nome
completo. Antes do título da página, um pequeno "AFService ›" no mesmo
espírito do breadcrumb dos mockups.

Verificação feita

  • Nenhuma mudança em Python além do bump de versão em config/settings.py
    (py_compile OK) — não há migration nem lógica de view nova.
  • Chaves do static/css/app.css balanceadas (271/271) antes e depois da
    edição.
  • {% if %}/{% endif %}, {% block %}/{% endblock %}, {% for %}/
    {% endfor %} balanceados em base.html, dashboard.html,
    dashboard_designer.html e platform_overview.html.
  • Revisão do git diff de cada arquivo tocado, confirmando que os únicos
    HTMLs alterados foram exatamente as classes/spans novos descritos
    acima — nenhum widget, view ou endpoint mudou.

Não dá pra testar visualmente neste ambiente (sem browser/servidor
com banco real). Teste real: abrir os 3 dashboards (conta de provedor,
conta de projetista, e "Visão da plataforma" como superusuário), recolher
e expandir o menu lateral (confirmar que vira um trilho de ícones sem
sobrepor o conteúdo), conferir o cabeçalho hero, o selo de percentual no
card de acessos online, o acento roxo só na visão da plataforma, e o
avatar/breadcrumb na topbar.

Atualização

Execute apply no servidor. Sem migration nesta versão. Depois, um
Ctrl+F5 no navegador garante que o CSS novo seja carregado.