Bug: Widget selection vacío en resultados de tipo selection #67
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Grupo-Consiti/clinical_laboratory#67
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Descripción del problema
Se detectó un bug en la vista de resultados de pruebas donde el campo value_selection con widget selection aparece vacío y no muestra las opciones disponibles definidas en el parámetro.
Detalles técnicos
Síntomas:
Caso de ejemplo:
Análisis realizado:
Se identificaron 12 parámetros de tipo selection con opciones definidas:
Causa raíz
El widget selection en Odoo espera un campo de tipo Selection con opciones predefinidas, pero value_selection es un campo Char. Las opciones dinámicas del parámetro (selection_values) no se propagan automáticamente al widget.
Impacto
Soluciones propuestas
Archivos afectados
Prioridad
Media-Alta: Afecta la funcionalidad básica de ingreso de resultados para ciertos tipos de análisis.
Información adicional tras investigación
Se confirmó que el método get_selection_list() en lims.analysis.parameter funciona correctamente:
El problema real:
En el modelo lims.result:
En la vista lims_test_views.xml:
Confirmación del bug:
Solución implementada ✅
Se ha implementado una solución para el bug del widget selection vacío en la rama .
Cambios realizados:
**Modelo **:
**Vista **:
Resultado:
Testing:
Se probó con el parámetro "Prueba de Embarazo":
La solución está lista para revisión. La instancia sigue activa para pruebas.
Error adicional corregido: Se descubrió y corrigió un error de singleton en action_cancel de stock.lot mientras se probaba la solución del widget selection. Ambos errores han sido resueltos en los commits
c03afb7
ydcff505
.Se han implementado dos soluciones para el problema del widget selection:
Primera solución (descartada)
Solución final implementada
Commits realizados
La solución ahora valida correctamente los valores y previene el ingreso de opciones inválidas.
Solución final implementada
Después de varias iteraciones, la solución implementada es:
Por qué no usar Selection field nativo
Los campos Selection en Odoo no soportan bien opciones dinámicas basadas en otros campos del mismo registro en vistas editables (editable='bottom'). Las opciones deben ser estáticas o calculadas a nivel de modelo, no de registro.
Comportamiento actual
Commits finales
La solución es funcional y mantiene la integridad de los datos.
Nueva implementación con autocompletado inteligente
Se ha implementado una solución mejorada que permite al técnico escribir valores parciales que se autocompletan:
Funcionalidades implementadas:
Autocompletado en tiempo real (@onchange):
Validación y autocompletado al guardar:
Búsqueda flexible:
Instrucciones automáticas:
Ejemplo de instrucciones generadas:
La implementación está lista en la rama .
Implementación completada ✅
Se ha implementado exitosamente el autocompletado inteligente para campos de selección.
Funcionalidades implementadas:
Pull Request:
PR #72: #72
La funcionalidad ha sido probada y está funcionando correctamente.
Error adicional corregido
Mientras se estaba probando la solución del widget selection, se descubrió otro error al intentar cancelar una orden:
\
Causa del error
El método \ en \ estaba accediendo a \ directamente, lo cual falla cuando se llama el método sobre múltiples registros.
Solución implementada
Se modificó el método para iterar sobre cada registro:
\
Commits realizados
La instancia ha sido reiniciada y ambos errores han sido corregidos.
Información adicional tras investigación
Se confirmó que el método en funciona correctamente:
El problema real:
**En el modelo **:
**En la vista **:
Confirmación del bug: