Checklist cascade — bidirectional task ↔ item sync
Every task ships with 10–30 ordered checklist items. The cascade rule keeps task status and item progress in lock-step automatically — first tick promotes the task to in_progress, full clear demotes back to not_started, full done flips to done. No manual status management.
The 4 cascade rules
| # | When | Effect on parent task |
|---|---|---|
| 1 | First item ticked (item status: pending → done) | Task: not_started → in_progress (auto) |
| 2 | Item un-ticked (item status: done → pending) | If task was done|skipped → in_progress; else no change |
| 3 | All items cleared back to pending | Task: in_progress → not_started (auto) |
| 4 | All items done (or N/A approved) | Task auto-promotion to review if any items have notes; else stays in_progress until reviewer ticks Done |
The cascade is enforced server-side in JobChecklistService::cascadeTaskStatus on every tick / un-tick. JSON response returns the post-cascade task_status so the UI dropdown stays in sync.
Item-level lifecycle
Per-item form
Click an item → inline form expands. Fields:
Logged-in user at tick-time.
Timestamp. Drives the activity timeline.
What you did, exceptions, observations. Persists on the item permanently.
One file per item. Stored at storage/jobs/{id}/checklist/{item-id}/...
Hover to see the full standard text from the reference library.
Sets status to n_a_requested. Manager must approve via separate workflow.
Reset to "Not started" — the destructive option
Sometimes you need to wipe a task back to clean state (rare — wrong template chosen, complete redo, etc.). The reset is gated on m07.manage_team permission and:
- Wipes: all checklist items back to pending, soft-deletes their attachments, soft-deletes their comments, clears inline notes
- Preserves: N/A-approved items + their attachments + finalised documents
- Audit-logs: the reset action with user + reason
- Confirms: JS confirm dialog spells out exactly what gets wiped vs preserved before commit
Don't tick checklist items "to look productive". Each tick stamps you as performer with a timestamp — if a regulator inspects 3 years later and the timestamp doesn't match field-visit dates, you have a problem. Tick when you've done the work, not before. Same rule as workpaper procedure ticking.
If you tick by mistake, un-tick immediately. The cascade demotes the task back to its prior state. The audit log will show both events — but a tick-then-un-tick within minutes reads as "fat finger" and is easy to defend. A tick-then-un-tick six months later reads as "covering up", so be honest in real time.