event: Zoom CSV import — force registrant email as external_id; ignore placeholder Unique identifier
This commit is contained in:
@@ -574,17 +574,23 @@ async def event_id_badge_import_zoom_csv(
|
|||||||
if loop_count <= begin_at: continue
|
if loop_count <= begin_at: continue
|
||||||
if loop_count > end_at: break
|
if loop_count > end_at: break
|
||||||
|
|
||||||
unique_id = str(record.get('Unique identifier', '')).strip()
|
# Force use of Registrant email as the external_id for Zoom CSV imports.
|
||||||
|
# Many Zoom exports (for this group) have a useless "Unique identifier"
|
||||||
|
# column that contains "N/A" for every row — rely on email instead.
|
||||||
email = str(record.get('Registrant email', '')).strip()
|
email = str(record.get('Registrant email', '')).strip()
|
||||||
|
if not email:
|
||||||
if unique_id:
|
log.warning('Row missing registrant email — skipping.')
|
||||||
external_id = unique_id
|
|
||||||
elif email:
|
|
||||||
log.info('Using email as external_id fallback for Zoom CSV row')
|
|
||||||
external_id = email
|
|
||||||
else:
|
|
||||||
log.warning('Row missing Unique identifier and email — skipping.')
|
|
||||||
continue
|
continue
|
||||||
|
external_id = email
|
||||||
|
|
||||||
|
# Sanitize the Unique identifier value and only use it as the
|
||||||
|
# external_registration_id if it appears meaningful. Treat common
|
||||||
|
# placeholders like 'N/A'/'NA'/'UNKNOWN' as missing.
|
||||||
|
unique_id_raw = str(record.get('Unique identifier', '')).strip()
|
||||||
|
if unique_id_raw and unique_id_raw.upper() not in ('N/A', 'NA', 'UNKNOWN'):
|
||||||
|
external_registration_id = unique_id_raw
|
||||||
|
else:
|
||||||
|
external_registration_id = None
|
||||||
|
|
||||||
ticket_name = str(record.get('Ticket name', '')).strip()
|
ticket_name = str(record.get('Ticket name', '')).strip()
|
||||||
given_name = str(record.get('First name', '')).strip()
|
given_name = str(record.get('First name', '')).strip()
|
||||||
@@ -625,7 +631,7 @@ async def event_id_badge_import_zoom_csv(
|
|||||||
'event_id': event_id,
|
'event_id': event_id,
|
||||||
'enable': True,
|
'enable': True,
|
||||||
'external_id': external_id,
|
'external_id': external_id,
|
||||||
'external_registration_id': unique_id,
|
'external_registration_id': external_registration_id,
|
||||||
'event_person_profile': {
|
'event_person_profile': {
|
||||||
'enable': True,
|
'enable': True,
|
||||||
'given_name': given_name,
|
'given_name': given_name,
|
||||||
@@ -649,7 +655,7 @@ async def event_id_badge_import_zoom_csv(
|
|||||||
'event_badge': {
|
'event_badge': {
|
||||||
'enable': True,
|
'enable': True,
|
||||||
'external_id': external_id,
|
'external_id': external_id,
|
||||||
'external_registration_id': unique_id,
|
'external_registration_id': external_registration_id,
|
||||||
'given_name': given_name,
|
'given_name': given_name,
|
||||||
'family_name': family_name,
|
'family_name': family_name,
|
||||||
'full_name': display_name or f'{given_name} {family_name}'.strip(),
|
'full_name': display_name or f'{given_name} {family_name}'.strip(),
|
||||||
|
|||||||
Reference in New Issue
Block a user