The manual-workout evidence form (shown on the lock screen and the status
window via the shared ManualWorkoutDialogMixin) was a cramped, narrow
centered column of tiny inputs with large empty margins, and included two
fields that make no sense to fill from a locked PC.
- Remove the vestigial "Google Maps link" (location_maps_link) and
"Screenshot path" (proof_screenshot_path) fields from the form, the
ManualWorkoutDraft dataclass, and build_entry(). Both were written to
workout_log.json but never read by any code. The now-empty "Evidence"
section is gone too. reservation_phone is kept.
- Lay the form out as a two-column grid that fills ~90% of the screen
(the fullscreen container was shrink-wrapping to its widest child) with
larger labels/inputs; reflection boxes span full width. Activity-specific
fields now sit directly under their section header.
- Extract the low-level field/grid builders into a new
ManualWorkoutFormWidgetsMixin (_manual_workout_widgets.py) so the dialog
module stays under the 400-line cap; the dialog mixin inherits it, so the
host classes need no change.
Tests updated for the removed fields and the pack->grid sport swap; added a
unit test for the grid cursor's odd-row bump. Full suite green at 100%.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PM3auNTifaVgcXWDizZrjH