diff options
Diffstat (limited to 'screens/templates.py')
| -rw-r--r-- | screens/templates.py | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/screens/templates.py b/screens/templates.py index 7c8ff60..fe122ce 100644 --- a/screens/templates.py +++ b/screens/templates.py @@ -15,18 +15,18 @@ def manage_workout_templates(conn: sqlite3.Connection) -> None: print("5. Back") choice = input("\n> ").strip() if choice == "1": - list_workout_templates(conn) + _list_workout_templates(conn) elif choice == "2": - create_workout_template(conn) + _create_workout_template(conn) elif choice == "3": - edit_workout_template(conn) + _edit_workout_template(conn) elif choice == "4": - delete_workout_template(conn) + _delete_workout_template(conn) elif choice == "5": break -def list_workout_templates(conn: sqlite3.Connection, pause: bool = True) -> None: +def _list_workout_templates(conn: sqlite3.Connection, pause: bool = True) -> None: templates = models.list_workout_templates(conn) ui.print_header("All Workout Templates") ui.print_table( @@ -37,7 +37,7 @@ def list_workout_templates(conn: sqlite3.Connection, pause: bool = True) -> None ui.pause() -def create_workout_template(conn: sqlite3.Connection) -> None: +def _create_workout_template(conn: sqlite3.Connection) -> None: name = ui.prompt_str("Template name: ") assert name is not None try: @@ -50,25 +50,25 @@ def create_workout_template(conn: sqlite3.Connection) -> None: # Immediately enter exercise editor print("Now add exercises to the template.") ui.pause() - edit_template_exercises(conn, template_id) + _edit_template_exercises(conn, template_id) -def edit_workout_template(conn: sqlite3.Connection) -> None: +def _edit_workout_template(conn: sqlite3.Connection) -> None: templates = models.list_workout_templates(conn) if not templates: print("\nNo templates defined.") return - list_workout_templates(conn, pause=False) + _list_workout_templates(conn, pause=False) tid = ui.prompt_int("\nTemplate ID to edit: ") assert tid is not None template = models.get_workout_template(conn, tid) if not template: print("Template not found.") return - edit_template_exercises(conn, tid) + _edit_template_exercises(conn, tid) -def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: +def _edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: """Interactive editor for a template's exercise list.""" while True: ui.clear_screen() @@ -118,6 +118,7 @@ def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: if action == "b": break + # Rename the template elif action == "n": new_name = ui.prompt_str("New template name: ") assert new_name is not None @@ -128,6 +129,7 @@ def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: print(f'Template "{new_name}" already exists.') ui.pause() + # Add an exercise: pick from available, prompt for defaults, append and save elif action == "a": available = models.list_workout_exercises(conn) if not available: @@ -162,6 +164,7 @@ def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: print(f'"{ex["name"]}" added to template.') ui.pause() + # Remove an exercise by position elif action == "r": if not exercises_data: print("No exercises to remove.") @@ -176,6 +179,7 @@ def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: print(f'Removed "{removed["exercise_name"]}".') ui.pause() + # Reorder: pop from one position and insert at another elif action == "m": if len(exercises_data) < 2: print("Need at least 2 exercises to move.") @@ -193,6 +197,7 @@ def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: print("Exercise moved.") ui.pause() + # Edit default values for an existing exercise (Enter keeps current) elif action == "e": if not exercises_data: print("No exercises to edit.") @@ -231,12 +236,12 @@ def edit_template_exercises(conn: sqlite3.Connection, template_id: int) -> None: ui.pause() -def delete_workout_template(conn: sqlite3.Connection) -> None: +def _delete_workout_template(conn: sqlite3.Connection) -> None: templates = models.list_workout_templates(conn) if not templates: print("\nNo templates defined.") return - list_workout_templates(conn, pause=False) + _list_workout_templates(conn, pause=False) tid = ui.prompt_int("\nTemplate ID to delete: ") assert tid is not None template = models.get_workout_template(conn, tid) |
