Organizations using CiviEvent need a way to load attendance/status updates in batch for event participants. For example, to update participant status from Registered to Attended for folks who check in at an event.
Currently, Import Participants only supports "create" mode, AND Event mapping is done solely using Event Title. Mapping on Event Title might be problematic in general since sites may run multiple events with the same title but different dates. When we add the option of UPDATING a Participant record - we want to give users an option to do the event match explicitly via Event ID.
1. Add Event ID as an option in the Match Fields mapping select fields..
- This does NOT replace the existing option to map/match on Event Title, but is an alternative
- Match Fields form rules should check that only Event OR Event ID column is mapped, not BOTH.
- Modify processing to handle Event ID matching for imports.
2. Add new form field (radio) for determining how "existing participants" are handled by the import:
(This is similar to the "For Duplicate Contacts" functionality on Import Contacts.)
- Label: "For Existing Participants"
- Values: Skip (default), Update, No Duplicate Checking
(I don't think we need the "Fill" option for this type of import)
3. Modify import processing to handle the Skip and Update modes
- current code implements the "No Duplicate Checking" (if I import the same participant data twice, I wind up with duplicate civicrm_participant records)
- Skip mode checks for existing civicrm_participant record based on event + contact matching. If found, skip the incoming record
- Update mode also checks for existing civicrm_participant record. If found, update the record with any participant fields in the incoming record.
4. Modify the Import Summary screen to provide feedback on number of participant records IMPORTED, number of participant records UPDATED (if Update mode), number of participant records SKIPPED (if Skip mode).