#!/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)