From 4311642bd495f24c0f7de6f74f24e29df08d0032 Mon Sep 17 00:00:00 2001 From: Don Harper Date: Wed, 17 Jun 2026 18:20:03 -0500 Subject: [PATCH] Add date defaults and auto-update for ink changes - Date-Purchased and Inked-date now default to today when left blank during pen creation - Purchased date defaults to today when left blank during ink creation - When changing ink during pen edit, Inked-date automatically updates to today --- src/pen_tracker/cli.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/pen_tracker/cli.py b/src/pen_tracker/cli.py index a39b86b..f806f28 100644 --- a/src/pen_tracker/cli.py +++ b/src/pen_tracker/cli.py @@ -37,7 +37,10 @@ class CLITracker(PenTracker): break value = input(f"Enter {label}: ").strip() if not value: - value = "N/A" + if key in ['Date-Purchased', 'Inked-date']: + value = datetime.now().strftime('%Y-%m-%d') + else: + value = "N/A" break if key in ['Date-Purchased', 'Inked-date']: if validate_date(value): @@ -81,12 +84,14 @@ class CLITracker(PenTracker): for header in self.headers: field = self.key_map.get(header, header) current_val = getattr(pen, field) + ink_changed = False while True: if header == 'Current-Ink': print(f"Current Ink: {current_val}") change_ink = input("Change ink? (y/n): ").strip().lower() if change_ink == 'y': new_val = self.select_ink() + ink_changed = True break else: new_val = "" @@ -103,6 +108,9 @@ class CLITracker(PenTracker): break if new_val: # If the user actually typed something new setattr(pen, field, new_val) + # If ink was changed, automatically update Inked-date to today + if ink_changed: + setattr(pen, 'Inked_date', datetime.now().strftime('%Y-%m-%d')) self.save_data() print("\n[✔] Pen updated successfully!") @@ -194,7 +202,10 @@ class CLITracker(PenTracker): while True: value = input(f"Enter {label}: ").strip() if not value: - value = "N/A" + if key == 'Purchased': + value = datetime.now().strftime('%Y-%m-%d') + else: + value = "N/A" break if key == 'Purchased': if validate_date(value):