diff --git a/lims_management/models/lims_result.py b/lims_management/models/lims_result.py index 28b8ba5..46878bd 100644 --- a/lims_management/models/lims_result.py +++ b/lims_management/models/lims_result.py @@ -92,9 +92,9 @@ class LimsResult(models.Model): string='Valor de Texto' ) - value_selection = fields.Selection( - string='Valor de Selección', - selection='_get_selection_options' + # Keep as Char but add domain validation + value_selection = fields.Char( + string='Valor de Selección' ) # Campo para mostrar las opciones disponibles @@ -283,6 +283,14 @@ class LimsResult(models.Model): raise ValidationError( _('Para parámetros de selección solo se debe elegir una opción.') ) + # Validar que el valor seleccionado sea válido + if has_value and record.parameter_id: + valid_options = record.parameter_id.get_selection_list() + if valid_options and record.value_selection not in valid_options: + raise ValidationError( + _('El valor "%s" no es una opción válida. Opciones disponibles: %s') % + (record.value_selection, ', '.join(valid_options)) + ) elif value_type == 'boolean': has_value = True # Boolean siempre tiene valor (True o False) if (record.value_numeric not in [False, 0.0]) or record.value_text or record.value_selection: diff --git a/lims_management/views/lims_test_views.xml b/lims_management/views/lims_test_views.xml index d0729bd..1986aea 100644 --- a/lims_management/views/lims_test_views.xml +++ b/lims_management/views/lims_test_views.xml @@ -90,7 +90,14 @@ class="oe_edit_only"/> + placeholder="Escriba para buscar..." + class="oe_edit_only"/> +