Spaces:
Sleeping
Sleeping
| import sqlite3 | |
| import panel as pn | |
| # Inicializar Panel | |
| pn.extension() | |
| # Funci贸n para conectar a la base de datos y obtener los materiales | |
| def obtener_materiales(busqueda=None): | |
| conn = sqlite3.connect(r"C:\Users\sersa\Desktop\UC\tfg\tfg\mieWeb\pruebas\prueba.db") # Cambia esto a la ruta de tu base de datos | |
| cursor = conn.cursor() | |
| if busqueda: | |
| # Consultar los materiales que coinciden exactamente con la b煤squeda (ignorando may煤sculas/min煤sculas) | |
| cursor.execute("SELECT id, nombre FROM Material WHERE LOWER(nombre) = LOWER(?)", (busqueda,)) | |
| else: | |
| # Consultar todos los materiales | |
| cursor.execute("SELECT id, nombre FROM Material") | |
| # Obtener todos los resultados | |
| materiales = cursor.fetchall() | |
| conn.close() | |
| return materiales | |
| # Obtener los materiales de la base de datos | |
| materiales = obtener_materiales() | |
| # Crear una lista con los nombres de los materiales para el multi-choice | |
| material_names = [material[1] for material in materiales] | |
| material_dict = {material[1]: material[0] for material in materiales} # Diccionario de {nombre: id} | |
| # Crear un widget de multi-choice (selecci贸n m煤ltiple) | |
| multi_choice = pn.widgets.MultiChoice(name="Seleccionar Materiales", options=material_names, width=400, placeholder="Seleccione los materiales que desee") | |
| # Funci贸n que se ejecuta cuando el usuario selecciona materiales | |
| def mostrar_seleccion(event): | |
| # Obtener los materiales seleccionados | |
| seleccionados = event.new | |
| ids_seleccionados = [material_dict[nombre] for nombre in seleccionados] # Convertir nombres seleccionados a IDs | |
| print(f"Materiales seleccionados: {seleccionados}, IDs: {ids_seleccionados}") | |
| # Aqu铆 puedes hacer cualquier cosa con los materiales seleccionados (e.g., c谩lculos) | |
| # Conectar la funci贸n de selecci贸n a los multi-choice | |
| multi_choice.param.watch(mostrar_seleccion, 'value') | |
| # Mostrar los widgets | |
| pn.Column(multi_choice).show() | |