Skip to content

v0.75.1

Choose a tag to compare

@adrianfiio adrianfiio released this 02 Aug 13:15

AFService Map v0.75.1 — Hotfix da ACL/painel Superadmin

Backup/ponto de rollback: tag v0.75.0. Trabalho feito diretamente por
mim (Claude), a partir de 3 prints reais mandados pelo usuário logo
depois da v0.75.0: provedor sem opção real de configurar financeiro dos
clientes que já existem, projetista sem o menu Financeiro, e Superadmin
sem menu nenhum na Visão da plataforma. Com migration
(apps.billing.0003_customer_ixc_customer).

1. Financeiro do projetista sumia por completo

Print mostrou o menu lateral do projetista (LC-PROJETOS) com só 4
ícones — Visão geral, Mapa, Equipamentos, Minha administração — sem
Alertas (certo, projetista não tem cliente pra gerar alerta) e sem
Financeiro (errado — a especificação pedia explicitamente que
Projetista Editor visse o financeiro da própria empresa).

Causa: no templates/base.html, coloquei o link de Financeiro dentro
do mesmo {% if not current_company.is_designer %} que já escondia
Alertas — copiei o padrão sem separar os dois. Corrigido: Alertas
continua condicional a not is_designer, Financeiro ficou fora desse
bloqueio.

2. Provedor com 2.965 clientes reais e Financeiro mostrando zero

Print da "Visão da plataforma" mostra "Nic Fibra Telecom" com 2.965
clientes
(contagem de IXCCustomer, a tabela de clientes já
sincronizados do IXCSoft) — mas a tela de Financeiro daquela mesma
empresa mostrava "Nenhum cliente cadastrado ainda." e só oferecia
"Novo cliente →" pra digitar um por um.

Causa: apps.billing.Customer (criado na v0.74.0) era um cadastro
100% independente, sem nenhuma ligação com IXCCustomer — fazia
sentido pra empresa sem ERP nenhum, mas deixava uma empresa com ERP (e
milhares de clientes já cadastrados) sem nenhum caminho razoável pra
começar a usar o financeiro.

Corrigido:

  • Customer.ixc_customer — novo campo (OneToOneField pra
    IXCCustomer, opcional).
  • A lista de clientes agora mostra, além dos já configurados, uma seção
    "Clientes do ERP sem financeiro configurado" — paginada (25 por
    página) e com busca — listando quem já existe no IXCCustomer mas
    ainda não tem mensalidade/financeiro cadastrado aqui.
  • Botão "Configurar →" em cada um leva pro formulário de cadastro já
    com nome, documento, e-mail e telefone pré-preenchidos a partir do
    cadastro do ERP — só falta definir mensalidade/vencimento.
  • Tentar configurar o mesmo cliente do ERP duas vezes redireciona pro
    cadastro já existente, não deixa duplicar.

Empresa sem ERP continua exatamente como antes — cadastro manual
completo, sem seção nova nenhuma (a seção só aparece quando existe
algum IXCCustomer sem financeiro vinculado).

3. Superadmin sem menu nenhum

Print da "Visão da plataforma" mostra só a topbar — nenhuma barra
lateral, nenhum menu. O usuário: "eu não quero ficar acessando django
ali quero meu menu geral".

Causa: PlatformOverviewView (apps/core/views.py) setava
context["hide_sidebar"] = True de propósito, com um comentário meu
de uma rodada anterior dizendo que "superusuário já tem o Django Admin
pra qualquer outra tela" — decisão errada, o usuário não quer depender
do /admin/ pro uso do dia a dia.

Corrigido:

  • Removido o hide_sidebar = True.
  • templates/base.html agora mostra um menu dedicado pro
    Superadmin (quando logado sem vínculo de empresa nenhum): "Visão da
    plataforma" e "Nova empresa" — sem os itens que só fazem sentido
    dentro de uma empresa (Mapa, Equipamentos, Alertas, Minha
    administração), que continuam aparecendo normalmente pra usuário de
    empresa.
  • A tabela de empresas na própria Visão da plataforma ganhou colunas
    "Atrasados"/"Pendentes" por empresa — dá a visão financeira
    consolidada pedida ("dash de geral de financeiro") sem precisar de
    uma página nova, reaproveitando a mesma tabela que já mostra rede,
    alertas e sincronização.

Verificação feita

  • python -m py_compile em todos os arquivos tocados/novos.
  • Migration nova revisada campo a campo; dependência de
    ixc_integration ajustada pra 0008_sync_progress (a mais recente),
    não 0001_initial, evitando qualquer risco de ordem entre migrations
    mesmo só adicionando uma FK pra uma tabela que já existe desde a
    0001.
  • Chaves do static/css/app.css balanceadas (280/280).
  • {% if %}/{% endif %}/{% for %}/{% endfor %}/{% block %}/
    {% endblock %} balanceados em base.html,
    templates/billing/customer_list.html e
    templates/platform_overview.html — a estrutura aninhada nova do
    menu do Superadmin em base.html foi conferida diff a diff.
  • Revisei que "Configurar →" não permite configurar o mesmo cliente do
    ERP duas vezes (usa hasattr no acessor reverso do
    OneToOneField, que o Django projeta especificamente pra funcionar
    com hasattr/getattr nesse caso).

manage.py check, manage.py migrate, manage.py test e o teste
visual real (abrir Financeiro como projetista, configurar um cliente do
ERP como provedor, ver o menu do Superadmin) dependem de banco, GDAL e
navegador reais — precisam ser feitos no servidor.

Atualização

Execute apply no servidor — esta versão tem migration
(apps.billing.0003_customer_ixc_customer), roda automaticamente.
Depois, um Ctrl+F5 no navegador.

Teste sugerido: como usuário Projetista, confirmar que "Financeiro"
aparece no menu; como provedor com ERP, abrir Financeiro e confirmar
que a seção de clientes do ERP sem configuração aparece e que
"Configurar →" pré-preenche os dados; como Superadmin, confirmar que a
Visão da plataforma mostra o menu lateral e as colunas
Atrasados/Pendentes na tabela de empresas.