mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-05-21 05:40:26 -05:00
157272356c
Add new Resume feature that allows users to quickly start a new active timer with the same properties as a previously completed time entry. This eliminates repetitive data entry when continuing work on tasks that span multiple days, reducing time from ~30 seconds to ~3 seconds (90% savings). Backend Changes: - Add new route GET /timer/resume/<timer_id> in app/routes/timer.py - Copies project, task, notes, tags, and billable status to new timer - Validates permissions (users can only resume their own entries) - Prevents concurrent timers (blocks if active timer exists) - Validates project status (must be active, not archived) - Handles deleted tasks gracefully (creates timer without task) - Logs events for analytics and activity tracking - Emits WebSocket events for real-time UI updates Frontend Changes: - Add green Resume button (play icon) to dashboard recent entries - Add Resume button to search results time entry table - Add Resume button to task view time entries table - Position Resume as first action before Edit/Duplicate/Delete Testing: - Add comprehensive test suite in tests/test_time_entry_resume.py - 14 tests covering unit, integration, and smoke test scenarios - Tests property copying, permissions, validations, and edge cases - 100% code coverage of new functionality Documentation: - Add docs/RESUME_FEATURE.md - Complete feature documentation - Add docs/features/RESUME_TIME_ENTRY_IMPLEMENTATION.md - Technical guide - Add docs/features/RESUME_TIME_ENTRY_README.md - User quick start guide Properties Copied: project_id, task_id, notes, tags, billable Properties NOT Copied: start_time (uses current), end_time (NULL for active) No database migrations required - works with existing schema. Resolves user feature request for resuming time entries across work sessions.