- 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>
- 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>
- 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>
- 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>