Lesson 7 of 10 · 5 min
Job Statuses and the Kanban Pipeline
Learn every status in the jobs pipeline, how they map to backend values, and how to move jobs through stages using the Kanban board or inline controls.
Job Statuses and the Kanban Pipeline
Video coming soon
Lesson Notes
Vremly has seven front-end job status values that represent the life of a job from booking to delivery. In order: Pending (booked, no technician assigned — orange clock icon), Assigned (technician locked in — blue calendar icon), In Progress (shoot is active — purple camera icon), Awaiting Editor (shoot complete, editing not yet started — amber clock icon), Editing (editor working on the deliverables — amber pencil icon), Delivered (media sent to client — green checkmark icon), and Cancelled (job called off — red X icon). Each status has a color-coded badge using the design system's --status-* CSS variables, keeping the agent table, company table, kanban cards, and job detail panel all visually consistent.
These front-end keys map to a smaller set of backend ProjectStatus enum values. Pending and Assigned both map to BOOKED. In Progress maps to SHOOTING. Both Awaiting Editor and Editing map to EDITING. Delivered maps to DELIVERED. Cancelled maps to CANCELLED. This mapping lives in a single function (jobStatusKeyToProjectStatus) and is the authoritative source across all pages — any deviation would cause status changes to silently set the wrong backend value, which previously caused a confirmed bug where selecting 'Cancelled' on the detail page mapped to BOOKED and un-cancelled the job.
The Kanban board at /job-management shows four columns: Booked (contains Pending and Assigned jobs), Shooting (In Progress), Editing (Awaiting Editor and Editing), and Delivered. Jobs move between columns by drag-and-drop. Dropping a card into a column sets the job to that column's targetStatus: dragging to Booked sets Assigned, dragging to Shooting sets In Progress, dragging to Editing queues the job for editing (the Awaiting Editor sub-state), and dragging to Delivered sets Delivered. The Kanban board has a permission layer — Editors cannot change status at all. Project Managers can only change status on jobs where they are assigned as the PM. Owners and Admins can change status on any job.
In the Kanban view, the search bar, filter dropdown, and sort dropdown work locally on the in-memory job set (not server-side). The filter options mirror the list view: All, Pending, Assigned, In Progress, Editing, Delivered, Cancelled. Sort options are: Date (Newest First), Date (Oldest First), Client (A-Z), Client (Z-A), and Priority. This is separate from the list view's URL-synced server-side filtering — the Kanban board does not paginate and loads all accessible jobs into memory.
On the iOS app, status is changed via a confirmation dialog in OrderDetailView. Tapping the status pill in the sticky header opens a UIKit-style confirmation sheet listing all ProjectStatus cases (BOOKED, SHOOTING, EDITING, DELIVERED, CANCELLED), each with its label. Selecting one calls JobMutationsClient.changeStatus and reloads the project. The iOS labels match the backend enum directly (Booked, Shooting, Editing, Delivered, Cancelled) — the iOS surface doesn't have the Pending / Assigned / Awaiting Editor sub-states that the webapp exposes, because those distinctions are relevant at the operations desk level, not the field level.
Key Takeaways
- Seven front-end statuses (Pending, Assigned, In Progress, Awaiting Editor, Editing, Delivered, Cancelled) map to five backend enum values.
- The Kanban board at /job-management has four columns: Booked, Shooting, Editing, Delivered — drag-and-drop moves jobs between stages.
- Editors cannot change status; Project Managers only on their assigned jobs; Owners and Admins on any job.
- Kanban filtering and sorting are client-side only; the list at /jobs uses server-side pagination and filtering.
- On iOS, status changes via a confirmation dialog showing backend enum labels — the sub-state distinctions (Pending vs. Assigned) are web-only.