import gradio as gr from backend.database.models import SessionLocal, User, Project, ResearchJob def load_history(): db = SessionLocal() user = db.query(User).filter(User.username == "admin").first() if not user: db.close() return [["", "Usuario no encontrado."]] jobs = db.query(ResearchJob).join(Project).filter(Project.owner_id == user.id).order_by(ResearchJob.created_at.desc()).all() history_data = [] for job in jobs: history_data.append([ job.project.title, job.query, job.status, job.created_at.strftime("%Y-%m-%d %H:%M:%S") ]) db.close() if not history_data: return [["-", "No hay investigaciones guardadas.", "-", "-"]] return history_data def create_history_tab(): with gr.Tab("🕒 Historial", id="history"): gr.Markdown("## Historial de Investigaciones") gr.Markdown("Aquí se guardan las investigaciones de tu cuenta.") refresh_btn = gr.Button("🔄 Actualizar Historial") history_table = gr.Dataframe( headers=["Proyecto", "Consulta", "Estado", "Fecha"], interactive=False, wrap=True ) refresh_btn.click(fn=load_history, inputs=None, outputs=[history_table]) # Load automatically when switching tabs isn't natively supported in Blocks without an event. # But we can bind it to the app load event, which we'll do in app.py or just let the user click refresh.