File size: 2,234 Bytes
15b89f6
e8dca06
f225fc0
fe7e57a
f225fc0
 
e8dca06
 
f225fc0
fe7e57a
 
810c3cb
 
 
 
 
 
ec946a9
810c3cb
 
e8dca06
ec946a9
d6837a7
810c3cb
 
ec946a9
 
810c3cb
 
 
 
b42089e
0c4dd88
ec946a9
 
 
 
0c4dd88
2f00b01
ec946a9
 
 
 
2f00b01
 
b42089e
d6837a7
 
ec946a9
d6837a7
 
0c4dd88
810c3cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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()