The approvals kanban
The approvals kanban at /admin/approvals/pending shows every course in the workspace, grouped by status. It’s your work queue if you’re a content_manager or super_admin.
Available to: super_admin, content_manager, trainer (read-only, scoped to own department), auditor (read-only).
The four columns
| Column | What’s in it | What happens here |
|---|---|---|
| Draft | Courses still being authored | Trainers are working; nothing for you to do yet |
| Pending Approval | Courses with at least one module awaiting review | Where your queue lives |
| Published | Courses fully approved + published | Live to learners; can be archived from here |
| Archived | Courses removed from circulation | Historical; not visible to learners |
Card structure
Each card is a course, not a single module. The cards group modules inside their course:
- Course title + emoji + module count
- A “subline” depending on column:
- Draft: “4 / 6 modules ready”
- Pending: “3 modules awaiting review”
- Published: “12 modules live”
- The course’s tags as chips
- A link to the course detail page
Click a card to open the course detail view, where you’ll review each module individually.
What happens on submit
When a trainer submits a course, every module in it flips to pending_approval. The card moves from Draft to Pending Approval.
You get an email (if email notifications are on) and a Slack ping (if configured). The Approvals badge in the sidebar shows a count of pending courses.
What happens after each module decision
You approve modules one at a time. Wisteria moves a course between columns based on the aggregate state of its modules:
- Any module is
pending_approval→ course is in Pending Approval - Every module is
approvedorpublished→ course is in Approved (a sub-state of Pending Approval awaiting trainer publish) - Every module is
published→ course is in Published - Every module is
archived→ course is in Archived
So you’ll often see a course move slowly from Pending to Approved as you knock down modules one at a time.
Filtering and sorting
The board supports:
- Search — fuzzy match against course titles
- Filter by department — see only courses from a specific department
- Filter by tag — see only courses tagged with X
- Sort — recently submitted, oldest first, alphabetical
These persist in URL query params.
Trainer view: read-only, own department only
Trainers see the same board but:
- Scoped to courses they authored
- Read-only — they can’t move cards (drag-and-drop is disabled)
- Used to track their own course-progress through review
If you’re a trainer wondering why you can’t act on the board: that’s by design. Wait for the reviewer.
Auditor view: read-only, full workspace
Auditors see every card in every column but can’t act. Useful for compliance — auditors witness the queue without changing it.
Super admin: Queries column
When viewing the kanban as a super_admin, the Pending column includes a Queries sub-column showing queries raised against modules currently under review. This lets the super admin see which courses have open questions without switching tabs, and act on them directly from the board.
Content managers see queries from the Queries tab instead — the sub-column is a super_admin–specific view.
What’s NOT on this board
- Queries tab — the full rejection-and-resubmit thread history lives at
/admin/approvals/queries. See The rejection-and-resubmit cycle. - Workflow configuration — at
/admin/approvals/workflow. Super admin only.
The Approvals page has three tabs: Pending (this kanban), Queries (rejection threads), Workflow (builder). Switch between them from the tab bar.