Details
Description
Organizations who use CiviEvent have requested to ability to expose a list of participants for an event. This capability will be configurable at the event level and permissioned via Drupal access control for this initial implementation.
Implementation
============
1. Add option group and option values for participant listing options:
Group Name = 'participant_listing'.
Option Values:
'None', 0
'Name Only', 1
'Name and Email Address', 2
(NOTE: This group and it's options are not exposed explicitly in the admin UI.)
2. Add column to civicrm_event table:
- participant_listing_id, INT, default = 0, implicit FK to civicrm_option_value
3. Add new <select> field to the Event Information and Settings form under Configure Event (CRM/Event/Form/ManageEvent/EventInfo.php)
- label: Participant Listings
- field: <select> with all active participant_listing option values, value is required
- default value: None (0)
4. Define Drupal permission: 'view event participants'
5. Create listing page:
- url = civicrm/event/participants?id=$eventID
- page is simple selector with pager, either Name column only, or Name, Email columns depending on participant_listing_id for the event. (Name value = sort_name, Email value = primary email address). Columns s/b sortable.
ISSUE: What participant status(es) should be included in the listing? Perhaps all participants w/ status = Registered OR Attended.
6. Permissioning for listing page:
- Page request is valid IF civicrm_event.participant_listing_id = 1 or 2 AND the user's role (or anonymous) has 'view event participants' permission.
7. Add a "row" in the Configure Event template (CRM/Event/Page/ManageEventEdit.tpl.):
Left column = "Participant Listing"
Right column =
- If participant_listing_id is 1 or 2, display the link to the page
- Else "Participant Listing is not enabled for this event. You can enable it from <a href=
{crmURL....event/manage?subPage=eventinfo}
>Event Information and Settings</a>."