#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Script para asignar el usuario admin al grupo de Administrador de Laboratorio
"""

import logging

# Configurar logging
logging.basicConfig(level=logging.INFO)
_logger = logging.getLogger(__name__)

try:
    # Buscar el usuario admin
    admin_user = env['res.users'].search([('login', '=', 'admin')], limit=1)
    if not admin_user:
        _logger.error("No se encontró el usuario admin")
        exit(1)
    
    # Buscar el grupo de Administrador de Laboratorio
    try:
        lab_admin_group = env.ref('lims_management.group_lims_admin')
    except ValueError:
        _logger.error("No se encontró el grupo de Administrador de Laboratorio")
        exit(1)
    
    # Verificar si el usuario ya está en el grupo
    if lab_admin_group in admin_user.groups_id:
        _logger.info("El usuario admin ya está en el grupo de Administrador de Laboratorio")
    else:
        # Agregar el usuario al grupo
        admin_user.write({
            'groups_id': [(4, lab_admin_group.id)]
        })
        _logger.info("Usuario admin agregado exitosamente al grupo de Administrador de Laboratorio")
    
    # Confirmar los grupos del usuario
    group_names = ', '.join(admin_user.groups_id.mapped('name'))
    _logger.info(f"Grupos del usuario admin: {group_names}")
    
    env.cr.commit()
    _logger.info("Cambios guardados exitosamente")

except Exception as e:
    _logger.error(f"Error al asignar usuario admin al grupo: {str(e)}")
    exit(1)