ISHLT IMpexium import script improvements.

This commit is contained in:
Scott Idem
2023-02-07 17:56:13 -05:00
parent 1604d68817
commit e43d7e061e

View File

@@ -85,6 +85,7 @@ async def event_import_reg(
log.warning('The custom fields were not found at all. Are the "details" being included?')
pass
event_person_profile_data = {}
event_badge_data = {}
if account_id_random == 'd8TqXqf1EOg': # ISHLT
@@ -109,13 +110,30 @@ async def event_import_reg(
event_badge_data['badge_type'] = field.get('value') # This is probably not exactly right
# Code naming clean up...
if field.get('value') == 'Physician': event_badge_data['badge_type_code'] = 'physician'
if field.get('value') == 'Nurse, Allied Health, Non-Physician': event_badge_data['badge_type_code'] = 'nurse_allied_nonphysician'
if field.get('value') == 'Trainee': event_badge_data['badge_type_code'] = 'trainee'
if field.get('value') == 'Industry': event_badge_data['badge_type_code'] = 'industry'
if field.get('value') == 'Exhibitor All Access': event_badge_data['badge_type_code'] = 'ex_all'
if field.get('value') == 'Exhibitor Booth Staff': event_badge_data['badge_type_code'] = 'ex_booth'
if field.get('value') == 'Guest': event_badge_data['badge_type_code'] = 'guest'
if field.get('value') == 'Physician':
event_badge_data['badge_type_code'] = 'physician'
event_badge_data['badge_type'] = 'Physician'
if field.get('value') == 'Nurse, Allied Health, Non-Physician':
event_badge_data['badge_type_code'] = 'nurse_allied_nonphysician'
event_badge_data['badge_type'] = 'Non-Physician'
if field.get('value') == 'Trainee':
event_badge_data['badge_type_code'] = 'trainee'
event_badge_data['badge_type'] = 'Trainee'
if field.get('value') == 'Industry':
event_badge_data['badge_type_code'] = 'industry'
event_badge_data['badge_type'] = 'Industry'
if field.get('value') == 'Exhibitor All Access':
event_badge_data['badge_type_code'] = 'ex_all'
event_badge_data['badge_type'] = 'Exhibitor All Access'
if field.get('value') == 'Exhibitor Booth Staff':
event_badge_data['badge_type_code'] = 'ex_booth'
event_badge_data['badge_type'] = 'Exhibitor Booth Staff'
if field.get('value') == 'Guest':
event_badge_data['badge_type_code'] = 'guest'
event_badge_data['badge_type'] = 'Guest'
elif event_registrant.get('customerType') == 'G':
event_badge_data['badge_type_code'] = 'guest'
event_badge_data['badge_type'] = 'Guest'
event_badge_data['registration_type_code'] = field.get('value')
event_badge_data['registration_type'] = field.get('value')
@@ -125,6 +143,11 @@ async def event_import_reg(
event_badge_data['badge_type'] = 'Guest'
event_badge_data['registration_type_code'] = 'guest'
event_badge_data['registration_type'] = 'Guest'
# NOTE: It is unlikely(???) that guests will have custom_fields???
if event_registrant.get('customerType') == 'G':
event_badge_data['badge_type_code'] = 'guest'
event_badge_data['badge_type'] = 'Guest'
elif e_impexium_event_id == 'ISHLT 43rd Annual Meeting - Exhib Booth Staff Only':
log.info('Processing ISHLT 2023 Annual Meeting Exhibit Only...')
event_badge_data['event_badge_template_id'] = 10
@@ -137,19 +160,19 @@ async def event_import_reg(
event_badge_data['event_badge_template_id'] = 11
if e_impexium_event_id == '2023 Lung Transplantation Morning Master Class':
event_badge_data['badge_type_code'] = 'lung_morning'
event_badge_data['badge_type'] = 'Lung Transplantation Morning'
event_badge_data['badge_type'] = 'Lung Transplantation Morning Academy'
elif e_impexium_event_id == '2023 Lung Transplantation Afternoon Master Class':
event_badge_data['badge_type_code'] = 'lung_afternoon'
event_badge_data['badge_type'] = 'Lung Transplantation Afternoon'
event_badge_data['badge_type'] = 'Lung Transplantation Afternoon Academy'
elif e_impexium_event_id == '2023 Nursing and Allied Health Master Class':
event_badge_data['badge_type_code'] = 'nurse_allied_health'
event_badge_data['badge_type'] = 'Nursing and Allied Health'
event_badge_data['badge_type'] = 'Nursing and Allied Health Academy'
elif e_impexium_event_id == '2023 Pediatric MCS Master Class':
event_badge_data['badge_type_code'] = 'pediatric'
event_badge_data['badge_type'] = 'Pediatric'
elif e_impexium_event_id == '2023 Pulmonary Hypertension Master Class':
event_badge_data['badge_type_code'] = 'pulmonary'
event_badge_data['badge_type'] = 'Pulmonary Hypertension'
event_badge_data['badge_type'] = 'Pulmonary Hypertension Academy'
else:
log.warning('Setting generic badge type. Event ID not fully setup?')
event_badge_data['badge_type_code'] = event_registrant.get('registrantTypeCode') # MBR19, NonM
@@ -250,13 +273,13 @@ async def event_import_reg(
if isinstance(individual_profile_custom_field_li, list):
for individual_profile_custom_field in individual_profile_custom_field_li:
if individual_profile_custom_field.get('name') == 'degree':
degrees = individual_profile_custom_field.get('value')
degrees = individual_profile_custom_field.get('value').strip()
# NOTE: Use only one of the organization names with a preference for the exhibiting name. (new for ISHLT 2023)
if individual_profile_custom_field.get('name') == 'exhibiting_organization_name':
organization_name = individual_profile_custom_field.get('value')
organization_name = individual_profile_custom_field.get('value').strip()
elif individual_profile_custom_field.get('name') == 'organization_name':
organization_name = individual_profile_custom_field.get('value')
organization_name = individual_profile_custom_field.get('value').strip()
log.debug(f'Degrees: {degrees}; Organization Name: {organization_name}')
else:
@@ -293,53 +316,89 @@ async def event_import_reg(
log.warning('Tried to get individual profile, but no results!')
pass
# if inc_individual_profile_custom_fields:
# log.info(f'Getting individual custom fields list for Event Registrant ID {event_registrant.get("id")}')
# individual_custom_fields_li = get_individual_custom_fields(individual_id=event_registrant.get('id'))
# log.debug(individual_custom_fields_li)
# for individual_custom_field in individual_custom_fields_li:
# if individual_custom_field.get('name') == 'degree':
# degrees = individual_custom_field.get('value')
# if individual_custom_field.get('name') == 'organization_name':
# organization_name = individual_custom_field.get('value')
# log.debug(f'Degrees: {degrees}; Organization Name: {organization_name}')
event_person_profile_data = {}
event_person_profile_data['enable'] = True
event_person_profile_data['pronouns'] = event_registrant.get('gender')
event_person_profile_data['informal_name'] = event_registrant.get('preferredFirstName')
event_badge_data['enable'] = True
event_person_profile_data['title_names'] = event_registrant.get('prefix')
event_person_profile_data['given_name'] = event_registrant.get('firstName')
event_person_profile_data['middle_name'] = event_registrant.get('middleName')
event_person_profile_data['family_name'] = event_registrant.get('lastName')
event_person_profile_data['designations'] = event_registrant.get('suffix')
event_person_profile_data['pronouns'] = event_registrant.get('gender')
event_badge_data['pronouns'] = event_registrant.get('gender')
if event_registrant.get('preferredFirstName'):
event_person_profile_data['informal_name'] = event_registrant.get('preferredFirstName').strip()
event_badge_data['informal_name'] = event_registrant.get('preferredFirstName').strip()
else:
event_person_profile_data['informal_name'] = None
event_badge_data['informal_name'] = None
if event_registrant.get('prefix'):
event_person_profile_data['title_names'] = event_registrant.get('prefix').strip()
event_badge_data['title_names'] = event_registrant.get('prefix').strip()
else:
event_person_profile_data['title_names'] = None
event_badge_data['title_names'] = None
event_person_profile_data['given_name'] = event_registrant.get('firstName').strip()
event_badge_data['given_name'] = event_registrant.get('firstName').strip()
if event_registrant.get('middleName'):
event_person_profile_data['middle_name'] = event_registrant.get('middleName').strip()
event_badge_data['middle_name'] = event_registrant.get('middleName').strip()
else:
event_person_profile_data['middle_name'] = None
event_badge_data['middle_name'] = None
if event_registrant.get('lastName'):
event_person_profile_data['family_name'] = event_registrant.get('lastName').strip()
event_badge_data['family_name'] = event_registrant.get('lastName').strip()
else:
event_person_profile_data['family_name'] = None
event_badge_data['family_name'] = None
if event_registrant.get('suffix'):
event_person_profile_data['designations'] = event_registrant.get('suffix')
event_badge_data['designations'] = event_registrant.get('suffix')
else:
event_person_profile_data['designations'] = None
event_badge_data['designations'] = None
if degrees:
event_person_profile_data['professional_title'] = degrees # Ideally should be degrees for ISHLT
event_badge_data['professional_title'] = degrees # Ideally should be degrees for ISHLT
else:
event_person_profile_data['professional_title'] = None # event_registrant.get('title') # Should this be None if no degrees found above???
event_person_profile_data['professional_title'] = None
event_badge_data['professional_title'] = None
# event_registrant.get('title') # Should this be None if no degrees found above???
event_person_profile_data['full_name'] = event_registrant.get('badgeName')
event_person_summary_data['full_name'] = event_registrant.get('badgeName')
full_name = None
if event_registrant.get('badgeName'):
full_name = event_registrant.get('badgeName').strip()
elif event_registrant.get('preferredFirstName') and event_registrant.get('lastName'):
full_name = event_registrant.get('preferredFirstName').strip() + ' ' + event_registrant.get('lastName').strip()
elif event_registrant.get('firstName') and event_registrant.get('lastName'):
full_name = event_registrant.get('firstName').strip() + ' ' + event_registrant.get('lastName').strip()
else:
full_name = event_registrant.get('firstName').strip()
event_person_profile_data['full_name'] = full_name
event_person_summary_data['full_name'] = full_name
event_badge_data['full_name'] = full_name
if organization_name:
event_person_profile_data['affiliations'] = organization_name # Ideally should be organization_name for ISHLT
event_badge_data['affiliations'] = organization_name # Ideally should be organization_name for ISHLT
else:
event_person_profile_data['affiliations'] = event_registrant.get('badgeOrganization') # Should this be None if no organization_name found above???
event_badge_data['affiliations'] = event_registrant.get('badgeOrganization') # Should this be None if no organization_name found above???
if email: event_person_profile_data['email'] = email
if email:
event_person_profile_data['email'] = email
event_badge_data['email'] = email
event_person_data['event_person_profile'] = {}
event_person_data['event_person_profile'] = event_person_profile_data
# event_badge_data = {} # Initialized above ^
event_badge_data['enable'] = True
# event_badge_data['enable'] = True
event_badge_data['event_id'] = event_id
event_badge_data['external_event_id'] = e_impexium_event_id
event_badge_data['external_id'] = external_id_v3
event_badge_data['external_person_id'] = external_person_id
event_badge_data['external_registration_id'] = external_registration_id
@@ -357,134 +416,6 @@ async def event_import_reg(
event_badge_data['allow_tracking'] = False
event_person_data['allow_tracking'] = False
# if reg_type_code := event_registrant.get('registrantTypeCode'):
# event_badge_data['badge_type_code'] = event_registrant.get('registrantTypeCode') # Using this as the badge_type
# ishlt_m = ('AHMB', 'IMBR', 'MBR')
# ishlt_nm = ('ANHM', 'INMB', 'NMBR')
# ishlt_student_m = ('SMBR')
# ishlt_student_nm = ('SNMB')
# ishlt_ex_all = ('EX')
# ishlt_ex_booth = ('EX')
# ishlt_guest = ('GUEST')
# if reg_type_code in ishlt_m:
# event_badge_data['badge_type'] = 'Member'
# elif reg_type_code in ishlt_nm:
# event_badge_data['badge_type'] = 'Non-Member'
# elif reg_type_code in ishlt_student_m:
# event_badge_data['badge_type'] = 'Student/Trainee Member'
# elif reg_type_code in ishlt_student_nm:
# event_badge_data['badge_type'] = 'Student/Trainee Non-Member'
# elif reg_type_code in ishlt_ex_all:
# event_badge_data['badge_type'] = 'Exhibitor All Access'
# elif reg_type_code in ishlt_ex_booth:
# event_badge_data['badge_type'] = 'Exhibitor Booth Staff'
# elif reg_type_code in ishlt_guest:
# event_badge_data['badge_type'] = 'Guest'
# else:
# event_badge_data['badge_type'] = event_registrant.get('registrantTypeName')
# if custom_fields := event_registrant.get('itemizedCustomFields'):
# if isinstance(custom_fields, list):
# log.info('Found list of custom fields for an exhibitor. Searching for "exhibitor_reg_type')
# for field in custom_fields:
# if field.get('name') == 'registration_type':
# event_badge_data['registration_type_code'] = field.get('value')
# event_badge_data['registration_type'] = field.get('value')
# break
# else: log.info('Found custom fields section, but no list was found.')
# else:
# log.warning('The custom fields were not found at all. Are the "details" being included?')
# event_badge_data['event_badge_template_id'] = 3
# elif e_impexium_event_id == '42_AM':
# if not reg_type_code and event_registrant.get('guestOfRecordNumber'):
# event_badge_data['badge_type_code'] = 'GUEST'
# event_badge_data['badge_type'] = 'Guest'
# event_badge_data['registration_type_code'] = 'GUEST'
# event_badge_data['registration_type'] = 'Guest'
# else:
# event_badge_data['badge_type_code'] = 'UNKNOWN'
# event_badge_data['badge_type'] = 'Unknown Type'
# event_badge_data['registration_type_code'] = 'UNKNOWN'
# event_badge_data['registration_type'] = 'Unknown Type'
# event_badge_data['event_badge_template_id'] = 3
# elif e_impexium_event_id == 'EX22_AM':
# event_badge_data['badge_type_code'] = 'EX'
# event_badge_data['badge_type'] = 'Exhibit Staff'
# if custom_fields := event_registrant.get('itemizedCustomFields'):
# if isinstance(custom_fields, list):
# log.info('Found list of custom fields for an exhibitor. Searching for "exhibitor_reg_type')
# for field in custom_fields:
# if field.get('name') == 'exhibitor_reg_type':
# if field.get('value') == 'Exhibitor Booth Staff ':
# event_badge_data['badge_type_code'] = 'EXO'
# event_badge_data['badge_type'] = 'Exhibitor Booth Staff'
# elif field.get('value') == 'Exhibitor All Access ':
# event_badge_data['badge_type_code'] = 'EXALL'
# event_badge_data['badge_type'] = 'Exhibitor All Access'
# event_badge_data['registration_type_code'] = field.get('value')
# event_badge_data['registration_type'] = field.get('value')
# break
# else: log.info('Found custom fields section, but no list was found.')
# else:
# log.warning('The custom fields were not found at all. Are the "details" being included?')
# event_badge_data['event_badge_template_id'] = 3
# elif e_impexium_event_id == '2022HEART':
# if not reg_type_code and event_registrant.get('guestOfRecordNumber'):
# event_badge_data['badge_type_code'] = 'GUEST'
# event_badge_data['badge_type'] = 'Guest'
# event_badge_data['registration_type_code'] = 'GUEST'
# event_badge_data['registration_type'] = 'Guest'
# else:
# event_badge_data['badge_type_code'] = 'HEART'
# event_badge_data['badge_type'] = 'HFTX Core'
# event_badge_data['registration_type_code'] = 'HEART'
# event_badge_data['registration_type'] = 'HFTX Core'
# event_badge_data['event_badge_template_id'] = 5
# # event_badge_data['registration_type_code'] = event_registrant.get('registrantTypeCode')
# # event_badge_data['registration_type'] = event_registrant.get('registrantTypeName')
# elif e_impexium_event_id == '2022LUNG':
# if not reg_type_code and event_registrant.get('guestOfRecordNumber'):
# event_badge_data['badge_type_code'] = 'GUEST'
# event_badge_data['badge_type'] = 'Guest'
# event_badge_data['badge_type_code'] = 'GUEST'
# event_badge_data['badge_type'] = 'Guest'
# else:
# event_badge_data['badge_type_code'] = 'LUNG'
# event_badge_data['badge_type'] = 'LTX Core'
# event_badge_data['registration_type_code'] = 'LUNG'
# event_badge_data['registration_type'] = 'LTX Core'
# event_badge_data['event_badge_template_id'] = 5
# # event_badge_data['registration_type_code'] = event_registrant.get('registrantTypeCode')
# # event_badge_data['registration_type'] = event_registrant.get('registrantTypeName')
# else:
# event_badge_data['badge_type_code'] = 'UNKNOWN'
# event_badge_data['badge_type'] = 'Unknown Type'
# event_badge_data['event_badge_template_id'] = 3
# event_badge_data['registration_type_code'] = event_registrant.get('registrantTypeCode')
# event_badge_data['registration_type'] = event_registrant.get('registrantTypeName')
event_badge_data['member_type_code'] = event_registrant.get('customerType') # Using this as the member_type. Will update below if possible
event_badge_data['member_type'] = None # Using this as the member_type. Will update below if possible
event_badge_data['member_status'] = None
@@ -528,30 +459,6 @@ async def event_import_reg(
event_badge_data['badge_type_code'] = 'inactive_member_trainee'
event_badge_data['badge_type_code'] = 'Trainee Non-Member' # Student/Trainee?
event_badge_data['pronouns'] = event_registrant.get('gender')
event_badge_data['informal_name'] = event_registrant.get('preferredFirstName')
event_badge_data['title_names'] = event_registrant.get('prefix')
event_badge_data['given_name'] = event_registrant.get('firstName')
event_badge_data['middle_name'] = event_registrant.get('middleName')
event_badge_data['family_name'] = event_registrant.get('lastName')
event_badge_data['designations'] = event_registrant.get('suffix')
if degrees:
event_badge_data['professional_title'] = degrees # Ideally should be degrees for ISHLT
else:
event_badge_data['professional_title'] = None # event_registrant.get('title') # Should this be None if no degrees found above???
event_badge_data['full_name'] = event_registrant.get('badgeName')
if organization_name:
event_badge_data['affiliations'] = organization_name # Ideally should be organization_name for ISHLT
else:
event_badge_data['affiliations'] = event_registrant.get('badgeOrganization') # Should this be None if no organization_name found above???
if email: event_badge_data['email'] = email
if address_line_1: event_badge_data['address_line_1'] = address_line_1
if address_line_2: event_badge_data['address_line_2'] = address_line_2
if address_line_3: event_badge_data['address_line_3'] = address_line_3
@@ -657,38 +564,6 @@ async def event_import_reg(
break
# return False
# event_badge_data = {}
# external_id = event_registrant.get('recordNumber')+':'+event_registrant.get('registrationNumber')
# event_badge_data['external_id'] = external_id
# # event_badge_data['reg_num'] = event_registrant.get('registrationNumber')
# event_badge_data['badge_type_code'] = event_registrant.get('registrantTypeCode') # Using this as the badge_type
# event_badge_data['badge_type'] = event_registrant.get('registrantTypeName')
# event_badge_data['member_type_code'] = event_registrant.get('customerType') # Using this as the member_type
# event_badge_data['registration_type_code'] = event_registrant.get('registrantTypeCode')
# event_badge_data['registration_type'] = event_registrant.get('registrantTypeName')
# event_badge_data['pronouns'] = event_registrant.get('gender')
# event_badge_data['informal_name'] = event_registrant.get('preferredFirstName')
# event_badge_data['title_names'] = event_registrant.get('prefix')
# event_badge_data['given_name'] = event_registrant.get('firstName')
# event_badge_data['middle_name'] = event_registrant.get('middleName')
# event_badge_data['family_name'] = event_registrant.get('lastName')
# # event_badge_data['not_sure'] = event_registrant.get('secondLastName')
# event_badge_data['designations'] = event_registrant.get('suffix')
# event_badge_data['professional_title'] = event_registrant.get('title')
# event_badge_data['full_name'] = event_registrant.get('badgeName')
# event_badge_data['affiliations'] = event_registrant.get('badgeOrganization')
# event_badge_data['city'] = event_registrant.get('badgeCity')
# event_badge_data['state_province'] = event_registrant.get('badgeState')
# id, attendedDate, sessions, itemizedCustomFields, guestOfRecordNumber, registrantTypeName, boughtTogetherWith, primaryOrganization, customerType, showInDirectory, addresses, emails, phones
event_person_li.append(event_person_data)
event_person_summary_li.append(event_person_summary_data)
loop_count = loop_count + 1