Skip to content

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

  1. Navigate to Equipment → Reservations in Django Admin.
  2. Click Add Reservation.
  3. Fill in the request:
  4. Equipment: Select the item you need
  5. Start Date/Time: When you need it
  6. End Date/Time: When you'll return it
  7. Purpose: Why you need this equipment
  8. Location: Where equipment will be used (optional)
  9. Contact Info: How to reach you during the reservation

  10. 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

  1. Filter reservations by status = "Pending"
  2. Review each request:
  3. Is the purpose valid?
  4. Is the requester authorized?
  5. Are there conflicts with other reservations?
  6. Is the equipment available and operational?

2) Approving a request

  1. Open the reservation record
  2. Change status to "Approved"
  3. Fill in approval details:
  4. Approved By: (auto-filled with your user)
  5. Approved At: (auto-filled with current time)
  6. Add any notes or conditions
  7. Save

3) Rejecting a request

  1. Open the reservation record
  2. Change status to "Rejected"
  3. Add notes explaining the rejection reason
  4. 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.pyEquipmentReservation
  • Status choices: pending, approved, rejected, active, completed, cancelled
  • Approval tracking: approved_by, approved_at fields
  • Date validation prevents overlapping reservations for same equipment