40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# Training Record Draft Feature Report
|
|
|
|
## Summary
|
|
|
|
Implemented the draft workflow for training records based on the existing `training-records` feature pattern.
|
|
|
|
Key behavior now supported:
|
|
|
|
- Employees can save a training record as `draft`
|
|
- Employees can edit their own records only when status is `draft` or `needs_revision`
|
|
- Submitting a record moves it to `pending`
|
|
- HRD review can return a record as `needs_revision`
|
|
- The pending review queue is hard-scoped to `pending` records only
|
|
|
|
## Main Changes
|
|
|
|
- Added `draft` to the `approval_status` enum in Drizzle schema
|
|
- Generated migration `drizzle/0014_sweet_nico_minoru.sql`
|
|
- Extended training-record API types and UI label maps to include `draft`
|
|
- Added `submissionMode` handling for create/update flows
|
|
- Reset previous review data when a returned record is re-submitted
|
|
- Switched employee edit permission from `pending` to `draft | needs_revision`
|
|
- Updated pending-review pages to always query only `pending` records
|
|
- Updated summary typing in overview and employee-directory to handle the new status safely
|
|
|
|
## Decisions
|
|
|
|
- `draft` is a real persisted status, not a client-only flag
|
|
- `needs_revision` is reused as the returned-for-revision state
|
|
- Draft records are excluded from the HRD pending-review queue
|
|
- Draft hours are not counted into review-progress summaries that previously reflected submitted/reviewed work
|
|
|
|
## Verification
|
|
|
|
- `npm run gen`
|
|
- `npm run lint`
|
|
- `npm run build`
|
|
|
|
All three completed successfully after the implementation updates.
|