diff --git a/documents/logs/Screenshot_8.png b/documents/logs/Screenshot_8.png new file mode 100644 index 0000000..5369659 Binary files /dev/null and b/documents/logs/Screenshot_8.png differ diff --git a/documents/logs/Screenshot_9.png b/documents/logs/Screenshot_9.png new file mode 100644 index 0000000..dae2a12 Binary files /dev/null and b/documents/logs/Screenshot_9.png differ diff --git a/lims_management/models/lims_result.py b/lims_management/models/lims_result.py index 94ec921..28b8ba5 100644 --- a/lims_management/models/lims_result.py +++ b/lims_management/models/lims_result.py @@ -92,8 +92,9 @@ class LimsResult(models.Model): string='Valor de Texto' ) - value_selection = fields.Char( - string='Valor de Selección' + value_selection = fields.Selection( + string='Valor de Selección', + selection='_get_selection_options' ) # Campo para mostrar las opciones disponibles @@ -310,6 +311,14 @@ class LimsResult(models.Model): # Esto se usará en las vistas para mostrar las opciones dinámicamente pass + def _get_selection_options(self): + """Retorna las opciones de selección basadas en el parámetro.""" + options = [] + if self.parameter_id and self.parameter_value_type == 'selection': + param_options = self.parameter_id.get_selection_list() + options = [(opt, opt) for opt in param_options] + return options or [('', 'Sin opciones')] + @api.depends('parameter_id', 'parameter_id.selection_values') def _compute_selection_options_display(self): """Calcula las opciones disponibles para mostrar al usuario.""" diff --git a/lims_management/views/lims_test_views.xml b/lims_management/views/lims_test_views.xml index 455232b..d0729bd 100644 --- a/lims_management/views/lims_test_views.xml +++ b/lims_management/views/lims_test_views.xml @@ -90,15 +90,7 @@ class="oe_edit_only"/> - + widget="selection"/>