Work-order codes no longer overlap, Materials before Heat map, 60 min idle for Admin and Clerical (#42, #44, #45) #48

Merged
spencerm merged 2 commits from issues-42-44-45 into main 2026-10-21 20:39:27 +00:00
Owner

Fixes #42, fixes #44, fixes #45.

#42 Work-order codes overlap

  • Traveler PDF (pdf/traveler.py): each work-order line now fits its own box. It shrinks down to 70% of its size, then is cut with "...". A long work order, operation or drawing no longer runs over the next QR code. The gap between boxes is 18 pt (was 12), a quiet zone for the kiosk scanner.
  • Work orders tab: card text wraps inside the card, the work order is 22 px (was 26), and cards are at least 340 px wide (was 240), one per row on a narrow screen.

#44 Packet tabs

  • Materials now comes before Heat map. The rebuild has one tab order for every role.

#45 Idle timeout for Admin and Clerical

  • New setting SESSION_DESK_MINUTES (default 60). Admin and Clerical sessions (admin, clerical, clerical_supervisor) wait that long before both the screen lock and the idle sign-out. It never shortens SESSION_LOCK_MINUTES or SESSION_IDLE_MINUTES.
  • Everyone else keeps 3 and 15 minutes.
  • GET /api/auth/me answers session.lock_minutes, and the browser's idle lock follows it.
  • The hidden-tab lock after a minute is unchanged.

Tests

  • Locally: server tests 5456 passed, 519 skipped (no PostgreSQL on this PC; CI runs them). ruff and mypy are clean. Frontend typecheck, eslint and vitest (304) pass.
  • New: test_traveler_fit.py (text fits), and test_sessions.py tests for the desk minutes (Clara, Leo, Ann, Mia at 59/61 minutes) and the shop 3 minutes. The two existing 3/15-minute tests now sign in as Wade (Warehouse), since Clara now gets 60.
  • Not run here: the PostgreSQL tests and Playwright e2e. CI covers both.

Not in this PR

  • #43 (Clerical sync by department) still needs checking in the rebuild.

🤖 Generated with Claude Code

Fixes #42, fixes #44, fixes #45. ## #42 Work-order codes overlap - **Traveler PDF** (`pdf/traveler.py`): each work-order line now fits its own box. It shrinks down to 70% of its size, then is cut with "...". A long work order, operation or drawing no longer runs over the next QR code. The gap between boxes is 18 pt (was 12), a quiet zone for the kiosk scanner. - **Work orders tab**: card text wraps inside the card, the work order is 22 px (was 26), and cards are at least 340 px wide (was 240), one per row on a narrow screen. ## #44 Packet tabs - Materials now comes before Heat map. The rebuild has one tab order for every role. ## #45 Idle timeout for Admin and Clerical - New setting `SESSION_DESK_MINUTES` (default 60). Admin and Clerical sessions (`admin`, `clerical`, `clerical_supervisor`) wait that long before both the screen lock and the idle sign-out. It never shortens `SESSION_LOCK_MINUTES` or `SESSION_IDLE_MINUTES`. - Everyone else keeps 3 and 15 minutes. - `GET /api/auth/me` answers `session.lock_minutes`, and the browser's idle lock follows it. - The hidden-tab lock after a minute is unchanged. ## Tests - Locally: server tests 5456 passed, 519 skipped (no PostgreSQL on this PC; CI runs them). ruff and mypy are clean. Frontend typecheck, eslint and vitest (304) pass. - New: `test_traveler_fit.py` (text fits), and `test_sessions.py` tests for the desk minutes (Clara, Leo, Ann, Mia at 59/61 minutes) and the shop 3 minutes. The two existing 3/15-minute tests now sign in as Wade (Warehouse), since Clara now gets 60. - Not run here: the PostgreSQL tests and Playwright e2e. CI covers both. ## Not in this PR - #43 (Clerical sync by department) still needs checking in the rebuild. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
spencerm added 1 commit 2026-10-21 19:16:42 +00:00
Work-order codes no longer overlap (#42), Materials before Heat map (#44), 60 min idle for Admin and Clerical (#45)
ci / frontend (pull_request) Successful in 54s
ci / server (pull_request) Failing after 12m12s
ci / image (pull_request) Skipped
ci / e2e (pull_request) Skipped
de5b361d85
- Traveler: each work-order line shrinks, then clips, to fit its own box; 18 pt gap between boxes
- Work orders tab: card text wraps inside the card, smaller work order, wider cards
- Packet tabs: Materials before Heat map
- Sessions: SESSION_DESK_MINUTES (60) for Admin and Clerical lock and sign-out; /me answers
  lock_minutes and the browser's idle lock follows it

Co-Authored-By: Claude Opus 5.5 <[email protected]>
spencerm added 1 commit 2026-10-21 20:22:14 +00:00
tests: /me session shape includes lock_minutes
ci / frontend (pull_request) Successful in 50s
ci / server (pull_request) Successful in 11m16s
ci / image (pull_request) Skipped
ci / e2e (pull_request) Successful in 4m22s
9f354a0647
Co-Authored-By: Claude Opus 5.5 <[email protected]>
spencerm merged commit ce28d2f3c6 into main 2026-10-21 20:39:27 +00:00
spencerm deleted branch issues-42-44-45 2026-10-21 20:39:28 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: spencerm/PacketStation#48