Creating a round
Path:/app/bidding/new. Fields:
- Name — e.g. “Q3 2026 Vacation Bid”, “2027 Rotation Bid”
- Kind — Vacation or Shift/Rotation
- Order — Seniority (standard) or Random
- Opens at — datetime when employees can start submitting
- Closes at — datetime when submissions lock
draft.
Adding options
Each round needs options for employees to rank. Currently the UI supports creating the round; options are added via a future admin UI or directly via SQL. Example:start_date and end_date to pin a week. For shift rounds, use rotation_schedule as a free-text description.
Opening the round
Change status fromdraft to open. The opens_at time is informational — you open manually by updating status. Future: auto-open based on time.
Awarding
When the round closes (status =closed), the admin runs the award process. In the current version this is a manual step — you’d go through the bidders in seniority order and assign their highest-ranked available slot. A future version will automate this with a single “Award” button.
The bids.status field tracks the outcome per bid: submitted, awarded, or passed.
Required permissions
bidding.vacation.manage— run vacation roundsbidding.shift.manage— run shift roundsbidding.vacation.bid/bidding.shift.bid— submit bids (everyone gets these)
.manage permissions by default.