feat(#60): Automatización configurable de re-muestreo y reorganización de estados #62

Merged
luis_portillo merged 7 commits from feature/60-user-assignment-improvements into dev 2025-07-16 16:31:43 +00:00
2 changed files with 79 additions and 0 deletions
Showing only changes of commit 8d85d8c3ba - Show all commits

View File

@ -189,6 +189,39 @@ EOF
else:
print(f"Advertencia: Fallo al actualizar logo de empresa (código {result.returncode})")
# --- Asignar admin al grupo de Administrador de Laboratorio ---
print("\nAsignando usuario admin al grupo de Administrador de Laboratorio...")
sys.stdout.flush()
if os.path.exists("/app/scripts/assign_admin_to_lab_group.py"):
with open("/app/scripts/assign_admin_to_lab_group.py", "r") as f:
admin_group_script = f.read()
assign_admin_command = f"""
odoo shell -c {ODOO_CONF} -d {DB_NAME} <<'EOF'
{admin_group_script}
EOF
"""
result = subprocess.run(
assign_admin_command,
shell=True,
capture_output=True,
text=True,
check=False
)
print("--- Assign Admin to Lab Group stdout ---")
print(result.stdout)
print("--- Assign Admin to Lab Group stderr ---")
print(result.stderr)
sys.stdout.flush()
if result.returncode == 0:
print("Usuario admin asignado exitosamente al grupo de Administrador de Laboratorio.")
else:
print(f"Advertencia: Fallo al asignar admin al grupo (código {result.returncode})")
# --- Validación final del logo ---
print("\nValidando estado final del logo y nombre...")
sys.stdout.flush()

View File

@ -0,0 +1,46 @@
#!/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)