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'
|
string='Valor de Texto'
|
||||||
)
|
)
|
||||||
|
|
||||||
value_selection = fields.Char(
|
value_selection = fields.Selection(
|
||||||
string='Valor de Selección'
|
string='Valor de Selección',
|
||||||
|
selection='_get_selection_options'
|
||||||
)
|
)
|
||||||
|
|
||||||
# Campo para mostrar las opciones disponibles
|
# 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
|
# Esto se usará en las vistas para mostrar las opciones dinámicamente
|
||||||
pass
|
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')
|
@api.depends('parameter_id', 'parameter_id.selection_values')
|
||||||
def _compute_selection_options_display(self):
|
def _compute_selection_options_display(self):
|
||||||
"""Calcula las opciones disponibles para mostrar al usuario."""
|
"""Calcula las opciones disponibles para mostrar al usuario."""
|
||||||
|
|
|
@ -90,15 +90,7 @@
|
||||||
class="oe_edit_only"/>
|
class="oe_edit_only"/>
|
||||||
<field name="value_selection"
|
<field name="value_selection"
|
||||||
invisible="parameter_value_type != 'selection'"
|
invisible="parameter_value_type != 'selection'"
|
||||||
placeholder="Seleccione una opción"
|
widget="selection"/>
|
||||||
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;"/>
|
|
||||||
<field name="value_boolean"
|
<field name="value_boolean"
|
||||||
invisible="parameter_value_type != 'boolean'"
|
invisible="parameter_value_type != 'boolean'"
|
||||||
widget="boolean_toggle"
|
widget="boolean_toggle"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user