erp-odoo-ligit-myvexx/specs/001-contix-apps-home-branding/SPEC-001-CONTIX-APPS-HOME-BRANDING.md

4.7 KiB

Spec 001 — CONTIX+ Odoo Apps Home Menu Branding + Auto-Open

Criado: 2026-07-26
Solicitado por: Roger
Status: Implementado (myvexx + ligit)
Projeto: erp-odoo-ligit-myvexx
Módulo Odoo: myvexx_apps_branding 16.0.1.2.1
Dependência: OCA web_responsive (Odoo 16)

Sistemas

Instância Host Acesso DB
erp.myvexx.com VM 111 erp-myvexx (Big) 10.10.10.111:22248 ligit
erp.ligit.com.br lig315 200.187.190.30:22248 ligit

Path do módulo: /opt/odoo/custom/addons/myvexx_apps_branding


Objectivo

Personalizar o Apps Menu fullscreen do web_responsive (tela roxa de apps) com branding CONTIX+ e abrir essa tela automaticamente após o login.

Não é a “Ação inicial” do utilizador Odoo (isso abre um app). É o Home Menu de aplicativos.


Layout definitivo (aprovado Roger — não alterar sem OK)

Composição

  • Esquerda: logo CONTIX+ (transparente)
  • Direita: busca + grid compacto de ícones
  • Sem caixas/bordas/retângulos decorativos
  • Sem slogan HTML (logo PNG já contém a arte)

Medidas aprovadas

Elemento Valor Nota
Painel logo ~560px (min-width 420px) .o_myvexx_apps_brand
Logo max-width ~520px .o_myvexx_logo
Ícone app 5.5rem .o-app-iconNÃO ALTERAR
Célula app ~118px .o_app
Títulos ~1.2rem / weight 500
Row-gap ~1.15rem entre linhas de apps
Grid max-width ~780px ao lado da logo

Assets visuais

Ficheiro Uso
static/src/img/logo-contix-home.png Logo canónica no XML
static/src/img/logo-contabilidade_5.png Origem / backup da mesma arte

Arquitectura técnica

web_responsive.AppsMenu  (OCA)
        │
        ├─ XML inherit  → apps_menu.xml   (shell esquerda/direita)
        ├─ SCSS         → apps_menu.scss  (medidas definitivas)
        └─ JS patch     → open_home_on_login.esm.js  (auto-open)

Ficheiros do módulo

myvexx_apps_branding/
├── __init__.py
├── __manifest__.py
├── LAYOUT_DEFINITIVO.txt
├── PREFERENCIAS_ROGER.txt
└── static/src/
    ├── js/open_home_on_login.esm.js
    ├── img/logo-contix-home.png
    ├── img/logo-contabilidade_5.png
    └── components/apps_menu/
        ├── apps_menu.xml
        └── apps_menu.scss

Manifest (assets)

"depends": ["web_responsive"],
"assets": {
    "web.assets_backend": [
        "myvexx_apps_branding/static/src/js/open_home_on_login.esm.js",
        "myvexx_apps_branding/static/src/components/apps_menu/apps_menu.xml",
        "myvexx_apps_branding/static/src/components/apps_menu/apps_menu.scss",
    ],
},

Auto-open no login

  1. Após montar AppsMenu, chama setOpenState(true, false).
  2. Durante ~1.5s bloqueia o 1º ACTION_MANAGER:UI-UPDATED que normalmente fecha o menu.
  3. Depois libera o fecho normal.

Implementação Odoo 16 / estilo OCA:

  • import {patch} from "web.utils"
  • Patch: myvexx_apps_branding.OpenHomeOnLogin
  • this._super(...) + owl.onMounted

Alvo: @web_responsive/components/apps_menu/apps_menu.esmAppsMenu


Riscos em actualizações

Actualização Risco Acção
Só dados / módulos de negócio Baixo Nenhuma
Update web_responsive OCA Médio Rever AppsMenu / setOpenState
Odoo 16 → 17+ Alto Reescrever patch (API sem _super)
Cloudflare / browser cache Baixo Hard refresh

O módulo é custom (fora do path OCA) → pull do OCA não apaga o branding.


Deploy / upgrade

systemctl stop odoo
sudo -u odoo psql -d ligit -c "DELETE FROM ir_attachment WHERE name ILIKE '%web.assets_backend%' OR url ILIKE '%web.assets_backend%';"
sudo -u odoo /opt/odoo/venv/bin/python3 /opt/odoo/server/odoo-bin \
  -c /etc/odoo.conf -d ligit -u myvexx_apps_branding --stop-after-init
systemctl start odoo

Conf: /etc/odoo.conf · addons_path deve incluir /opt/odoo/custom/addons.

Teste

  1. Logout / login em /web
  2. Ctrl+Shift+R
  3. Home Menu CONTIX+ abre sozinho

Preferências travadas (Roger)

  • Ícones 5.5rem
  • Proporção logo/grid actual
  • Logo transparente
  • Auto-open no login

Paths Spec Hub / Obsidian (VM130)

Onde Path
Repo Git /opt/ligbox-spec-hub/repos/erp-odoo-ligit-myvexx
Specs .../specs/001-contix-apps-home-branding/
Obsidian /opt/ligbox-spec-hub/obsidian-vault/ERP-Odoo-Ligit-Myvexx/

Changelog

Ver CHANGELOG.md.