Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from task_functions import add_task, delete_task, get_tasks | |
| # Initialize Gradio app with dark tech-inspired theme | |
| with gr.Blocks() as demo: | |
| gr.Markdown( | |
| """ | |
| <div style="text-align: center; font-size: 28px; font-weight: bold; color: #FFA500;"> | |
| 📝 Futuristic To-Do List Tracker | |
| </div> | |
| """ | |
| ) | |
| # Create an empty DataFrame display | |
| task_table = gr.DataFrame( | |
| headers=["Task", "Priority", "Status", "Due Date"], | |
| label="Current Tasks", | |
| elem_id="task-table", | |
| interactive=False | |
| ) | |
| # Add Task Section | |
| with gr.Row(): | |
| with gr.Column(scale=3): | |
| task_input = gr.Textbox( | |
| label="Task", | |
| placeholder="Enter your task...", | |
| elem_id="input-box" | |
| ) | |
| with gr.Column(scale=1): | |
| priority_input = gr.Dropdown( | |
| choices=["Low", "Medium", "High"], | |
| label="Priority", | |
| value="Medium", | |
| elem_id="dropdown" | |
| ) | |
| status_input = gr.Dropdown( | |
| choices=["Not Started", "In Progress", "Completed"], | |
| label="Status", | |
| value="Not Started", | |
| elem_id="dropdown" | |
| ) | |
| with gr.Column(scale=2): | |
| due_date_input = gr.Textbox( | |
| label="Due Date (YYYY-MM-DD)", | |
| placeholder="YYYY-MM-DD", | |
| elem_id="input-box" | |
| ) | |
| with gr.Column(scale=1): | |
| add_button = gr.Button("Add Task", elem_id="button") | |
| # Button click to add task and update DataFrame | |
| def update_task_table(task, priority, status, due_date): | |
| add_task(task, priority, status, due_date) | |
| return get_tasks() | |
| add_button.click( | |
| fn=update_task_table, | |
| inputs=[task_input, priority_input, status_input, due_date_input], | |
| outputs=task_table | |
| ) | |
| # Delete Task Section | |
| delete_index = gr.Number(label="Task Index to Delete", value=0, elem_id="input-box") | |
| delete_button = gr.Button("Delete Task", elem_id="button") | |
| # Button click to delete task and update DataFrame | |
| def update_after_delete(index): | |
| delete_task(index) | |
| return get_tasks() | |
| delete_button.click( | |
| fn=update_after_delete, | |
| inputs=delete_index, | |
| outputs=task_table | |
| ) | |
| # Load external CSS file | |
| with open("styles.css", "r") as f: | |
| demo.css = f.read() | |
| # Launch the Gradio app | |
| demo.launch() | |