23 Commits

Author SHA1 Message Date
Claude AI
5dd3499097 feat: Major WhatsApp integration update with Odoo and pause/resume
## Frontend
- Add media display (images, audio, video, docs) in Inbox
- Add pause/resume functionality for WhatsApp accounts
- Fix media URLs to use nginx proxy (relative URLs)

## API Gateway
- Add /accounts/:id/pause and /accounts/:id/resume endpoints
- Fix media URL handling for browser access

## WhatsApp Core
- Add pauseSession() - disconnect without logout
- Add resumeSession() - reconnect using saved credentials
- Add media download and storage for incoming messages
- Serve media files via /media/ static route

## Odoo Module (odoo_whatsapp_hub)
- Add Chat Hub interface with DOLLARS theme (dark, 3-column layout)
- Add WhatsApp/DRRR theme switcher for chat view
- Add "ABRIR CHAT" button in conversation form
- Add send_message_from_chat() method
- Add security/ir.model.access.csv
- Fix CSS scoping to avoid breaking Odoo UI
- Update webhook to handle message events properly

## Documentation
- Add docs/CONTEXTO_DESARROLLO.md with complete project context

## Infrastructure
- Add whatsapp_media Docker volume
- Configure nginx proxy for /media/ route
- Update .gitignore to track src/sessions/ source files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 20:48:56 +00:00
Claude AI
1040debe2e fix(odoo): compatibilidad completa con Odoo 19
- Cambiar tree a list en todas las vistas
- Eliminar vista kanban (requiere formato diferente en Odoo 17+)
- Simplificar vista de búsqueda
- Simplificar herencia de res.partner (quitar xpaths problemáticos)
- Agregar store=True a campos computados para filtros
- Importar post_init_hook en __init__.py
- Usar @api.model_create_multi para método create

Probado y funcionando en Odoo 19.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:48:35 +00:00
Claude AI
28592254b2 fix(odoo): agregar store=True a campos computados
- unread_count: necesario para filtros de búsqueda
- last_message_preview: necesario para vistas

Campos computados sin store=True no pueden usarse en dominios de filtros.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:38:13 +00:00
Claude AI
0c5fe0e3bb fix(odoo): cambiar tree a list para Odoo 17+
- Reemplazar <tree> por <list> en todas las vistas
- Cambiar mode="tree" a mode="list"
- Actualizar view_partner_tree a view_partner_list
- Actualizar view_mode de tree,form a list,form

En Odoo 17+, el tipo de vista "tree" fue renombrado a "list".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:33:53 +00:00
Claude AI
f305f6495a fix(odoo): corregir orden de carga de archivos en manifest
- Cargar vistas con acciones ANTES del menú
- Mover whatsapp_data.xml al final (necesita modelos registrados)

El menú referencia acciones que deben existir primero.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:30:06 +00:00
Claude AI
ece4398807 fix(odoo): corregir método create para Odoo 17+
- Usar @api.model_create_multi en lugar de @api.model
- Manejar vals_list como lista de diccionarios

En Odoo 17+, create() recibe una lista de valores, no un diccionario único.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:24:40 +00:00
Claude AI
4877dc23d7 fix(odoo): usar post_init_hook para crear permisos
- Crear hooks.py con post_init_hook que crea permisos programáticamente
- Eliminar security/ directory (XML/CSV fallan en importación ZIP)
- Los permisos se crean después de que los modelos estén registrados

Esto garantiza que los permisos se creen correctamente independientemente
del método de instalación (ZIP o addons path).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:03:31 +00:00
Claude AI
626236c6dd fix(odoo): cambiar permisos de CSV a XML para importación ZIP
- Eliminar ir.model.access.csv (falla en importación ZIP)
- Crear ir_model_access.xml con registros de acceso
- Mover security al final del manifest (después de cargar modelos)
- Regenerar ZIP del módulo

El problema era que al importar vía ZIP, Odoo procesa el CSV
antes de registrar los modelos Python, causando error de external ID.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 00:02:50 +00:00
Claude AI
9b27eddb5f fix(odoo): corregir external IDs en security CSV
- Cambiar model_id:id a model_id/id (formato correcto)
- Agregar prefijo odoo_whatsapp_hub. a todas las referencias de modelo
- Necesario para que Odoo resuelva correctamente los IDs externos

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:13:59 +00:00
Claude AI
e10d67b19d chore(odoo): update module version to Odoo 19
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:48:46 +00:00
Claude AI
0c2e2f1b7a feat(odoo): add static description directory for module icon
- Add placeholder .gitkeep for icon.png location
- Required for Odoo Apps store compatibility

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:46:45 +00:00
Claude AI
48db1a94f7 feat(odoo): add conversation and partner views
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:45:44 +00:00
Claude AI
f1933cf0d0 feat(odoo): add security and data files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:45:40 +00:00
Claude AI
ad218ecccf feat(odoo): add menu and account views
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:45:33 +00:00
Claude AI
5f61a815e5 feat(odoo): add wizard views
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:45:29 +00:00
Claude AI
13dedaf48d feat(odoo): add WhatsApp webhook controller
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:19 +00:00
Claude AI
cf424b1f37 feat(odoo): add OWL chat widget
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:14 +00:00
Claude AI
c8c6deb4de feat(odoo): add WhatsApp account model
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:08 +00:00
Claude AI
e85c9c10b5 feat(odoo): add WhatsApp conversation model
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:06 +00:00
Claude AI
218c137564 feat(odoo): add WhatsApp CSS styles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:05 +00:00
Claude AI
1074bf6739 feat(odoo): extend res.partner with WhatsApp fields
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:03 +00:00
Claude AI
7551a3d8b7 feat(odoo): add WhatsApp message model
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:43:02 +00:00
Claude AI
87d59ca433 feat(odoo): create module structure and manifest
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:40:07 +00:00