fix(#67): Implementar widget selection dinámico con opciones del parámetro
- Cambiar campo value_selection de Char a Selection con opciones dinámicas - Agregar método _get_selection_options() que obtiene las opciones del parámetro - Remover campo selection_options_display de la vista ya que el widget selection muestra las opciones - El widget selection ahora muestra solo las opciones válidas definidas en el parámetro
This commit is contained in:
parent
dcff505a4f
commit
c673230b8f
BIN
documents/logs/Screenshot_8.png
Normal file
BIN
documents/logs/Screenshot_8.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
documents/logs/Screenshot_9.png
Normal file
BIN
documents/logs/Screenshot_9.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -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."""
|
||||
|
|
|
@ -90,15 +90,7 @@
|
|||
class="oe_edit_only"/>
|
||||
<field name="value_selection"
|
||||
invisible="parameter_value_type != 'selection'"
|
||||
placeholder="Seleccione una opción"
|
||||
class="oe_edit_only"/>
|
||||
<field name="selection_options_display"
|
||||
invisible="parameter_value_type != 'selection'"
|
||||
readonly="1"
|
||||
nolabel="1"
|
||||
class="text-muted small"
|
||||
widget="text"
|
||||
style="font-size: 0.85em; color: #6c757d;"/>
|
||||
widget="selection"/>
|
||||
<field name="value_boolean"
|
||||
invisible="parameter_value_type != 'boolean'"
|
||||
widget="boolean_toggle"
|
||||
|
|
Loading…
Reference in New Issue
Block a user