Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from datetime import date, timedelta | |
| # Initialize counters and logs | |
| total_exercises_completed = 0 | |
| days_completed = 0 | |
| last_reset = date.today() - timedelta(days=1) | |
| exercise_log = {f"Exercise {i+1}": 0 for i in range(8)} | |
| def reset_tracker(): | |
| global total_exercises_completed, days_completed, last_reset, exercise_log | |
| if date.today() > last_reset: | |
| all_done_today = all(count >= 6 for count in exercise_log.values()) | |
| if all_done_today: | |
| days_completed += 1 | |
| exercise_log = {f"Exercise {i+1}": 0 for i in range(8)} | |
| last_reset = date.today() | |
| total_exercises_completed = sum(exercise_log.values()) | |
| exercise_log_str = "\n".join(f"{name}: {count}" for name, count in exercise_log.items()) | |
| return exercise_log_str, total_exercises_completed, days_completed | |
| def update_exercise(button_name): | |
| global exercise_log, total_exercises_completed, last_reset | |
| if date.today() > last_reset: | |
| reset_tracker() | |
| if exercise_log[button_name] < 6: | |
| exercise_log[button_name] += 1 | |
| total_exercises_completed += 1 # Increment on each exercise completion. | |
| exercise_log_str = "\n".join(f"{name}: {count}" for name, count in exercise_log.items()) | |
| return exercise_log_str, total_exercises_completed, days_completed | |
| with gr.Blocks() as app: | |
| gr.Markdown("## Physical Therapy Exercise Tracker") | |
| exercise_log_text = gr.Textbox(label="Exercise Log", lines=10, value="Please press an exercise button to start tracking") | |
| total_exercises_completed_num = gr.Number(label="Total Exercises Completed", value=total_exercises_completed) | |
| days_completed_num = gr.Number(label="Days Completed", value=days_completed) | |
| with gr.Row(): | |
| for i in range(8): | |
| btn = gr.Button(f"Exercise {i+1}") | |
| btn.click( | |
| fn=update_exercise, | |
| inputs=[btn], | |
| outputs=[exercise_log_text, total_exercises_completed_num, days_completed_num] | |
| ) | |
| reset_button = gr.Button("Reset Daily Tracker") | |
| reset_button.click( | |
| fn=reset_tracker, | |
| inputs=[], | |
| outputs=[exercise_log_text, total_exercises_completed_num, days_completed_num] | |
| ) | |
| app.launch() | |