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

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

Resumen

Este PR implementa la funcionalidad completa de automatización configurable de re-muestreo para el sistema LIMS, incluyendo reorganización de estados y mejoras en la trazabilidad.

Cambios principales

1. Configuración del Laboratorio

  • Nuevo modelo lims.config.settings para configuración centralizada
  • Menú de configuración accesible para administradores
  • Opciones configurables:
    • Re-muestreo automático al rechazar (on/off)
    • Estado inicial para re-muestras
    • Prefijo personalizable
    • Límite máximo de re-muestreos
    • Notificaciones automáticas

2. Sistema de Re-muestreo Mejorado

  • Control inteligente que previene múltiples re-muestras activas
  • Estructura plana: todas las re-muestras son hermanas (evita nombres anidados)
  • Respeta la configuración del wizard de rechazo
  • Validación de límites por cadena completa

3. Trazabilidad Completa

  • Nuevos campos:
    • root_sample_id: identifica la muestra original
    • resample_chain_count: contador total de la cadena
  • Mensajes detallados en chatter
  • Vista mejorada con información de trazabilidad

4. Integración con Órdenes

  • Campo computed all_sample_ids que incluye re-muestras
  • Vista unificada de todas las muestras en la orden
  • Impresión de etiquetas solo para muestras activas

5. Correcciones

  • Error de res_model_id en mail.activity
  • Asignación automática de admin al grupo de laboratorio
  • Mejoras en la visualización de estados

Testing

  • Creación y confirmación de órdenes
  • Generación automática de muestras
  • Rechazo con/sin re-muestreo
  • Re-muestreo de re-muestras
  • Impresión de etiquetas
  • Configuración desde admin
  • Límites y validaciones

Archivos modificados

  • Modelos: stock_lot.py, sale_order.py, lims_config.py
  • Vistas: stock_lot_views.xml, sale_order_views.xml, lims_config_views.xml
  • Wizard: sample_rejection_wizard.py
  • Scripts: assign_admin_to_lab_group.py, init_odoo.py
  • Seguridad: ir.model.access.csv

Capturas

El sistema ahora mantiene una trazabilidad completa y una estructura clara de re-muestreos.

Closes #60

# feat(#60): Automatización configurable de re-muestreo y reorganización de estados ## Resumen Este PR implementa la funcionalidad completa de automatización configurable de re-muestreo para el sistema LIMS, incluyendo reorganización de estados y mejoras en la trazabilidad. ## Cambios principales ### 1. Configuración del Laboratorio - Nuevo modelo `lims.config.settings` para configuración centralizada - Menú de configuración accesible para administradores - Opciones configurables: - Re-muestreo automático al rechazar (on/off) - Estado inicial para re-muestras - Prefijo personalizable - Límite máximo de re-muestreos - Notificaciones automáticas ### 2. Sistema de Re-muestreo Mejorado - Control inteligente que previene múltiples re-muestras activas - Estructura plana: todas las re-muestras son hermanas (evita nombres anidados) - Respeta la configuración del wizard de rechazo - Validación de límites por cadena completa ### 3. Trazabilidad Completa - Nuevos campos: - `root_sample_id`: identifica la muestra original - `resample_chain_count`: contador total de la cadena - Mensajes detallados en chatter - Vista mejorada con información de trazabilidad ### 4. Integración con Órdenes - Campo computed `all_sample_ids` que incluye re-muestras - Vista unificada de todas las muestras en la orden - Impresión de etiquetas solo para muestras activas ### 5. Correcciones - Error de `res_model_id` en mail.activity - Asignación automática de admin al grupo de laboratorio - Mejoras en la visualización de estados ## Testing - [x] Creación y confirmación de órdenes - [x] Generación automática de muestras - [x] Rechazo con/sin re-muestreo - [x] Re-muestreo de re-muestras - [x] Impresión de etiquetas - [x] Configuración desde admin - [x] Límites y validaciones ## Archivos modificados - **Modelos**: `stock_lot.py`, `sale_order.py`, `lims_config.py` - **Vistas**: `stock_lot_views.xml`, `sale_order_views.xml`, `lims_config_views.xml` - **Wizard**: `sample_rejection_wizard.py` - **Scripts**: `assign_admin_to_lab_group.py`, `init_odoo.py` - **Seguridad**: `ir.model.access.csv` ## Capturas El sistema ahora mantiene una trazabilidad completa y una estructura clara de re-muestreos. Closes #60
luis_portillo added 7 commits 2025-07-16 16:30:22 +00:00
- Agregar modelo de configuración del laboratorio (lims.config.settings)
- Implementar generación automática de re-muestras al rechazar
- Añadir campos de trazabilidad: parent_sample_id, child_sample_ids
- Crear vista de configuración accesible desde menú admin
- Mejorar vistas de stock.lot con información de re-muestreo
- Incluir notificaciones automáticas a recepcionistas
- Configurar límite máximo de re-muestreos por muestra

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Crear script assign_admin_to_lab_group.py
- Integrar en proceso de inicialización
- Asegurar que admin tenga acceso completo al menú de configuración

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar campo obligatorio res_model_id en mail.activity
- Obtener ID del modelo stock.lot antes de crear actividad
- Prevenir error de validación al rechazar muestras

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar campo computed all_sample_ids que incluye re-muestras
- Método recursivo para obtener todas las re-muestras
- Mejorar vista de orden con pestaña unificada de muestras
- Mostrar indicador de re-muestra y muestra original
- Incluir estado y motivo de rechazo en la vista

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar action_print_sample_labels para usar all_sample_ids
- Filtrar muestras rechazadas, canceladas y desechadas
- Actualizar condición del botón para usar all_sample_ids
- Ahora imprime etiquetas de re-muestras activas

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Respetar configuración del wizard (checkbox crear re-muestra)
- Prevenir creación de múltiples re-muestras activas
- Agregar campos para trazabilidad completa:
  - root_sample_id: muestra original de la cadena
  - resample_chain_count: total de re-muestreos en cadena
- Validar límite de re-muestreos por cadena completa
- Mejorar vista con información de trazabilidad
- Método auxiliar para contar re-muestreos recursivamente

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Las re-muestras de re-muestras ahora se crean como hijas del padre original
- Evita nombres anidados como RE-RE-0000002-1
- Mantiene estructura más clara: todas las re-muestras son hermanas
- Actualiza mensajes para reflejar la muestra rechazada que originó la re-muestra
- Mejora trazabilidad manteniendo referencia clara al origen

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
luis_portillo merged commit fc2275f809 into dev 2025-07-16 16:31:43 +00:00
luis_portillo deleted branch feature/60-user-assignment-improvements 2025-07-16 16:31:43 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Grupo-Consiti/clinical_laboratory#62
No description provided.