168 lines
4.7 KiB
Markdown
168 lines
4.7 KiB
Markdown
# 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](https://github.com/itecnologys-tech/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-icon` — **NÃ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)
|
|
|
|
```python
|
|
"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.esm` → `AppsMenu`
|
|
|
|
---
|
|
|
|
## 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
|
|
|
|
```bash
|
|
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`.
|