#!/usr/bin/env python3 # -*- coding: utf-8 -*- import odoo import json def test_menu_action(cr): env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {}) print("\n=== VERIFICANDO MENÚ Y ACCIÓN DE PRUEBAS ===\n") # Verificar el menú menu = env.ref('lims_management.menu_lims_tests', raise_if_not_found=False) if menu: print(f"✓ Menú encontrado: {menu.name}") print(f" - ID: {menu.id}") print(f" - Acción: {menu.action.name if menu.action else 'Sin acción'}") print(f" - Padre: {menu.parent_id.name if menu.parent_id else 'Sin padre'}") else: print("✗ No se encontró el menú") return # Verificar la acción action = env.ref('lims_management.action_lims_test', raise_if_not_found=False) if action: print(f"\n✓ Acción encontrada: {action.name}") print(f" - ID: {action.id}") print(f" - Modelo: {action.res_model}") print(f" - View mode: {action.view_mode}") # Simular la apertura de la acción print("\n=== SIMULANDO APERTURA DE LA ACCIÓN ===") # Obtener las vistas model = env['lims.test'] print("\nVistas disponibles para lims.test:") views = env['ir.ui.view'].search([('model', '=', 'lims.test')]) for view in views: print(f" - {view.name} (tipo: {view.type})") # Verificar que se puede crear una instancia print("\n✓ Modelo lims.test existe y es accesible") # Verificar acciones en formato JSON print("\n=== DATOS DE LA ACCIÓN (JSON) ===") action_dict = { 'id': action.id, 'name': action.name, 'res_model': action.res_model, 'view_mode': action.view_mode, 'context': action.context, 'domain': action.domain, 'type': action.type, } print(json.dumps(action_dict, indent=2)) else: print("✗ No se encontró la acción") print("\n=== VERIFICACIÓN COMPLETADA ===") if __name__ == '__main__': db_name = 'lims_demo' registry = odoo.registry(db_name) with registry.cursor() as cr: test_menu_action(cr)