SergioSCA commited on
Commit
c157209
verified
1 Parent(s): 32e3715

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -12
app.py CHANGED
@@ -27,6 +27,23 @@ def actualizar_tareas(modalidades_seleccionadas):
27
  # Eliminar duplicados y devolver una lista de tareas disponibles
28
  return list(set(tareas_disponibles))
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  # Funci贸n para generar el encabezado del CSV (ahora incluye 'id')
31
  def generar_encabezado(modalidades_seleccionadas, tareas_seleccionadas):
32
  if not modalidades_seleccionadas or not tareas_seleccionadas:
@@ -99,10 +116,22 @@ with gr.Blocks() as demo:
99
  with gr.Row():
100
  #gr.Markdown("### Selecciona Tareas")
101
  tareas_disponibles = gr.CheckboxGroup(choices=[], label="Tareas Disponibles", interactive=True, elem_classes=["expanded-checkbox"])
 
 
 
 
 
 
 
 
 
 
 
 
102
  modalidades_seleccionadas.change(
103
- fn=lambda modalidades: actualizar_tareas(modalidades), # Usamos una lambda para simplificar
104
  inputs=modalidades_seleccionadas,
105
- outputs=tareas_disponibles
106
  )
107
 
108
  # Panel 3: Generar Encabezado del CSV
@@ -137,15 +166,5 @@ with gr.Blocks() as demo:
137
  outputs=vista_previa_csv
138
  )
139
 
140
- # Estilo CSS para expandir el 谩rea de selecci贸n de tareas
141
- demo.css = """
142
- .expanded-checkbox {
143
- max-height: 200px; /* Altura m谩xima */
144
- overflow-y: auto; /* Scroll vertical si es necesario */
145
- border: 1px solid #ccc; /* Borde para mejorar la visibilidad */
146
- padding: 10px; /* Espaciado interno */
147
- }
148
- """
149
-
150
  # Ejecutar la aplicaci贸n
151
  demo.launch()
 
27
  # Eliminar duplicados y devolver una lista de tareas disponibles
28
  return list(set(tareas_disponibles))
29
 
30
+ # Funci贸n para ajustar el estilo del panel din谩micamente
31
+ def ajustar_estilo_panel(tareas_disponibles):
32
+ # Calcular la altura 贸ptima del panel en funci贸n del n煤mero de tareas
33
+ altura_base = 50 # Altura m铆nima del panel
34
+ altura_por_tarea = 30 # Altura por cada tarea
35
+ altura_total = altura_base + len(tareas_disponibles) * altura_por_tarea
36
+ # Devolver el estilo CSS actualizado
37
+ estilo_css = f"""
38
+ .expanded-checkbox {{
39
+ max-height: {altura_total}px; /* Altura din谩mica */
40
+ overflow-y: auto; /* Scroll vertical si es necesario */
41
+ border: 1px solid #ccc; /* Borde para mejorar la visibilidad */
42
+ padding: 10px; /* Espaciado interno */
43
+ }}
44
+ """
45
+ return estilo_css
46
+
47
  # Funci贸n para generar el encabezado del CSV (ahora incluye 'id')
48
  def generar_encabezado(modalidades_seleccionadas, tareas_seleccionadas):
49
  if not modalidades_seleccionadas or not tareas_seleccionadas:
 
116
  with gr.Row():
117
  #gr.Markdown("### Selecciona Tareas")
118
  tareas_disponibles = gr.CheckboxGroup(choices=[], label="Tareas Disponibles", interactive=True, elem_classes=["expanded-checkbox"])
119
+ estilo_css = gr.HTML("") # Para aplicar estilos din谩micos
120
+
121
+ def actualizar_panel(modalidades_seleccionadas):
122
+ # Actualizar las tareas disponibles
123
+ tareas = actualizar_tareas(modalidades_seleccionadas)
124
+ # Ajustar el estilo del panel
125
+ nuevo_estilo = ajustar_estilo_panel(tareas)
126
+ return {
127
+ tareas_disponibles: gr.CheckboxGroup.update(choices=tareas),
128
+ estilo_css: gr.HTML.update(value=nuevo_estilo)
129
+ }
130
+
131
  modalidades_seleccionadas.change(
132
+ fn=actualizar_panel,
133
  inputs=modalidades_seleccionadas,
134
+ outputs=[tareas_disponibles, estilo_css]
135
  )
136
 
137
  # Panel 3: Generar Encabezado del CSV
 
166
  outputs=vista_previa_csv
167
  )
168
 
 
 
 
 
 
 
 
 
 
 
169
  # Ejecutar la aplicaci贸n
170
  demo.launch()