Paging Requirements/Design



This document aims to organize the effort to add paging to the vm module.


The following locations in the vm module need paging capabilities:

  • Volunteer List
    • DAO::getVolunteers()
    • VolunteerController::controlHandler() case 'display_list_all', 'display_list_assigned'
    • VolunteerView::listVolunteers()
    • templates/volunteers/list.tpl
  • Volunteer Search
  • Volunteer Assignment
  • Project List
  • Single Project Display Page
  • Reports?

DAO Work

The use of the LIMIT <offset>,<limit> clause can be used to limit the results returned from a query and take a load off of the database.

Since many queries for volunteer lists do large joins that return multiple rows per volunteer, in order to ensure proper functionality of the LIMIT clause, these volunteer list functions can be rewritten to only select the p_uuid's of the volunteers, then return a list of Volunteer objects corresponding to those p_uuids.