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>
This commit is contained in:
Claude AI
2026-01-30 00:02:50 +00:00
parent 357987844e
commit 626236c6dd
4 changed files with 85 additions and 10 deletions

Binary file not shown.

View File

@@ -16,13 +16,13 @@
'license': 'LGPL-3',
'depends': ['base', 'contacts', 'mail'],
'data': [
'security/ir.model.access.csv',
'data/whatsapp_data.xml',
'views/whatsapp_menu.xml',
'views/whatsapp_account_views.xml',
'views/whatsapp_conversation_views.xml',
'views/res_partner_views.xml',
'wizards/send_whatsapp_wizard.xml',
'security/ir_model_access.xml',
],
'assets': {
'web.assets_backend': [

View File

@@ -1,9 +0,0 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_whatsapp_account_user,whatsapp.account.user,odoo_whatsapp_hub.model_whatsapp_account,base.group_user,1,0,0,0
access_whatsapp_account_manager,whatsapp.account.manager,odoo_whatsapp_hub.model_whatsapp_account,base.group_system,1,1,1,1
access_whatsapp_conversation_user,whatsapp.conversation.user,odoo_whatsapp_hub.model_whatsapp_conversation,base.group_user,1,1,1,0
access_whatsapp_conversation_manager,whatsapp.conversation.manager,odoo_whatsapp_hub.model_whatsapp_conversation,base.group_system,1,1,1,1
access_whatsapp_message_user,whatsapp.message.user,odoo_whatsapp_hub.model_whatsapp_message,base.group_user,1,1,1,0
access_whatsapp_message_manager,whatsapp.message.manager,odoo_whatsapp_hub.model_whatsapp_message,base.group_system,1,1,1,1
access_whatsapp_send_wizard,whatsapp.send.wizard,odoo_whatsapp_hub.model_whatsapp_send_wizard,base.group_user,1,1,1,1
access_whatsapp_mass_wizard,whatsapp.mass.wizard,odoo_whatsapp_hub.model_whatsapp_mass_wizard,base.group_user,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
2 access_whatsapp_account_user whatsapp.account.user odoo_whatsapp_hub.model_whatsapp_account base.group_user 1 0 0 0
3 access_whatsapp_account_manager whatsapp.account.manager odoo_whatsapp_hub.model_whatsapp_account base.group_system 1 1 1 1
4 access_whatsapp_conversation_user whatsapp.conversation.user odoo_whatsapp_hub.model_whatsapp_conversation base.group_user 1 1 1 0
5 access_whatsapp_conversation_manager whatsapp.conversation.manager odoo_whatsapp_hub.model_whatsapp_conversation base.group_system 1 1 1 1
6 access_whatsapp_message_user whatsapp.message.user odoo_whatsapp_hub.model_whatsapp_message base.group_user 1 1 1 0
7 access_whatsapp_message_manager whatsapp.message.manager odoo_whatsapp_hub.model_whatsapp_message base.group_system 1 1 1 1
8 access_whatsapp_send_wizard whatsapp.send.wizard odoo_whatsapp_hub.model_whatsapp_send_wizard base.group_user 1 1 1 1
9 access_whatsapp_mass_wizard whatsapp.mass.wizard odoo_whatsapp_hub.model_whatsapp_mass_wizard base.group_user 1 1 1 1

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<!-- WhatsApp Account Access -->
<record id="access_whatsapp_account_user" model="ir.model.access">
<field name="name">whatsapp.account.user</field>
<field name="model_id" ref="model_whatsapp_account"/>
<field name="group_id" ref="base.group_user"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="0"/>
<field name="perm_create" eval="0"/>
<field name="perm_unlink" eval="0"/>
</record>
<record id="access_whatsapp_account_manager" model="ir.model.access">
<field name="name">whatsapp.account.manager</field>
<field name="model_id" ref="model_whatsapp_account"/>
<field name="group_id" ref="base.group_system"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="1"/>
</record>
<!-- WhatsApp Conversation Access -->
<record id="access_whatsapp_conversation_user" model="ir.model.access">
<field name="name">whatsapp.conversation.user</field>
<field name="model_id" ref="model_whatsapp_conversation"/>
<field name="group_id" ref="base.group_user"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="0"/>
</record>
<record id="access_whatsapp_conversation_manager" model="ir.model.access">
<field name="name">whatsapp.conversation.manager</field>
<field name="model_id" ref="model_whatsapp_conversation"/>
<field name="group_id" ref="base.group_system"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="1"/>
</record>
<!-- WhatsApp Message Access -->
<record id="access_whatsapp_message_user" model="ir.model.access">
<field name="name">whatsapp.message.user</field>
<field name="model_id" ref="model_whatsapp_message"/>
<field name="group_id" ref="base.group_user"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="0"/>
</record>
<record id="access_whatsapp_message_manager" model="ir.model.access">
<field name="name">whatsapp.message.manager</field>
<field name="model_id" ref="model_whatsapp_message"/>
<field name="group_id" ref="base.group_system"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="1"/>
</record>
<!-- WhatsApp Wizards Access -->
<record id="access_whatsapp_send_wizard" model="ir.model.access">
<field name="name">whatsapp.send.wizard</field>
<field name="model_id" ref="model_whatsapp_send_wizard"/>
<field name="group_id" ref="base.group_user"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="1"/>
</record>
<record id="access_whatsapp_mass_wizard" model="ir.model.access">
<field name="name">whatsapp.mass.wizard</field>
<field name="model_id" ref="model_whatsapp_mass_wizard"/>
<field name="group_id" ref="base.group_user"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="1"/>
</record>
</data>
</odoo>