Request & approve reservations (Reservation workflow)
This page covers the equipment reservation system for shared municipal resources.
Overview
The reservation system allows staff to: - Request equipment for specific time periods - Track approval status - Manage equipment availability
For requesters: Booking equipment
1) Creating a reservation request
- Navigate to Equipment → Reservations in Django Admin.
- Click Add Reservation.
- Fill in the request:
- Equipment: Select the item you need
- Start Date/Time: When you need it
- End Date/Time: When you'll return it
- Purpose: Why you need this equipment
- Location: Where equipment will be used (optional)
-
Contact Info: How to reach you during the reservation
-
Submit the request (status will be "Pending").
2) Reservation status flow
Pending → Approved → Active → Completed
↘ Rejected
↘ Cancelled
| Status | Meaning |
|---|---|
| Pending | Awaiting approval |
| Approved | Request approved, waiting for start date |
| Rejected | Request denied (see notes for reason) |
| Active | Equipment currently in use |
| Completed | Equipment returned, reservation closed |
| Cancelled | Request withdrawn by requester |
3) Checking availability
Before submitting a request: - View existing reservations for the equipment - Check for conflicts with your desired dates - Consider alternative equipment if conflicts exist
4) Cancelling a request
If you no longer need the equipment: 1. Open your reservation record 2. Change status to "Cancelled" 3. Add a note explaining the cancellation
For approvers: Managing requests
1) Reviewing pending requests
- Filter reservations by status = "Pending"
- Review each request:
- Is the purpose valid?
- Is the requester authorized?
- Are there conflicts with other reservations?
- Is the equipment available and operational?
2) Approving a request
- Open the reservation record
- Change status to "Approved"
- Fill in approval details:
- Approved By: (auto-filled with your user)
- Approved At: (auto-filled with current time)
- Add any notes or conditions
- Save
3) Rejecting a request
- Open the reservation record
- Change status to "Rejected"
- Add notes explaining the rejection reason
- Save
The requester should be notified (if notifications are configured).
4) Handling conflicts
If multiple requests overlap: - Review request priorities and purposes - Consider alternative equipment suggestions - Communicate with requesters to resolve conflicts
5) Activating reservations
When the reservation start date arrives: 1. Verify equipment is ready for handover 2. Change status to "Active" 3. Record any handover notes
6) Completing reservations
When equipment is returned: 1. Verify equipment condition 2. Change status to "Completed" 3. Note any issues or damage 4. If damage found, flag for maintenance
Best practices
For requesters
- Submit requests with adequate lead time
- Be specific about purpose and duration
- Update or cancel if plans change
- Report any issues with equipment during use
For approvers
- Review requests promptly
- Provide clear reasons for rejections
- Track equipment utilization patterns
- Coordinate with maintenance schedules
Behind the scenes (grounded in code)
- Reservation model:
apps/equipment/models.py→EquipmentReservation - Status choices:
pending,approved,rejected,active,completed,cancelled - Approval tracking:
approved_by,approved_atfields - Date validation prevents overlapping reservations for same equipment